【问题标题】:jqGrid 'selarrrow' returning row numbers instead of row IDsjqGrid 'selarrrow' 返回行号而不是行 ID
【发布时间】:2011-03-21 12:29:01
【问题描述】:

我可以从发布到浏览器的 jqGrid JSON 数据中看到行 ID(在 JSON 行数据中用“i”表示)正确通过,但是当我做出选择并检查 $('#list').getGridParam('selarrrow') 时正在显示选定的行号,而不是它们的 ID。

有人有这方面的经验吗?谢谢

更新

下面是 JSON 结果的图片(复制粘贴不是一个选项)

(bigger version of the image here)

以及用于检查选择的 javascript 代码:

<script type="text/javascript">
    function checkSelection(){
        alert($('#list').getGridParam('selarrrow').join());
    }
</script>

【问题讨论】:

  • 能否发布您的测试 JSON 数据和 JavaScript 代码示例(尤其是使用的 jsonReader)。
  • 对不起 Jimbo,但我无法重现您发布的数据和代码的问题。例如ok-soft-gmbh.com/jqGrid/GetScheduledReleases.txtok-soft-gmbh.com/jqGrid/GetScheduledReleases.htm。如果您发布部分 JSON 数据(仅限某些行)和 jqGrid 声明的代码(可以简化),则无需运行服务器组件即可重现您的问题。然后可以找到解决您问题的方法。
  • 我想从服务器发送的 ID 被忽略,所以行号将是真正的行 ID。您可以使用 loadComplete 事件中的 getDataIDs 方法验证这一点。

标签: jquery jqgrid multi-select


【解决方案1】:

你确定吗?根据jqGrid documentation for selarrrow

此选项是只读的。当 multiselect 设置为 true 时确定当前选择的行。这是一维数组,数组中的值对应于网格中选定的 id。

因此,如果它返回行号,则 jqGrid API 中存在错误。您是否可以发布更多信息,例如您致电 selarrrow 的结果以及网格中 ID 的完整列表?

【讨论】:

    【解决方案2】:

    我认为从服务器发送的 ID 将被忽略,因此行号将是真正的行 ID。您可以使用loadComplete 事件中的getDataIDs 方法来验证这一点。为什么 ID 会被忽略我只能在您发布更多信息时说。

    【讨论】:

      【解决方案3】:

      贾斯汀和奥列格 - 我确信你被派到这个星球上是为了解决世界上的 jQueries :) 再次感谢你在这个问题上的帮助。

      解决方案
      在我的代码中,网格的列定义没有指定一个 key 列来从中绘制每一行的 ID - 它是如何在上面的屏幕截图中获取 i = &lt;id&gt; 的,我不知道,但它肯定没有使用它每行的 ID。我将网格定义更改为以下内容:

      ...,
      colNames: ['ID', 'Family', 'Variety', 'Type', 'EDI #', 'Colour', 'Swatch'],
      colModel: [{ name: 'id', index: 'id', key: true, hidden: true },
      ...
      

      (请注意 colModel 中 ID 列的 key: true

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多