【问题标题】:Infragistics Jquery Grid primary keyInfragistics Jquery Grid 主键
【发布时间】:2012-08-15 23:40:08
【问题描述】:

我正在尝试在我的网格上进行行选择,但在设置或获取 datakey 值时遇到了困难,因为我在上面找不到任何文档。

$("#divGrid").igGrid({
            columns: [
                { headerText: "@Manage.gridColumnEmployeeNumber", key: "EmployeeNumber" },
            ],
            dataKeyFields: "EmployeeNumber",  //Is this how you set the dataKeys?
            autoGenerateColumns: false,
            dataSource: jsonp,
            features: [
                {
                    name: "Selection",
                    rowSelectionChanging: rowSelectionChanging
                }
            ]
        });
    });

这根本不起作用。如何在这部分代码中访问我的 dataKey(primaryKey)?

    function rowSelectionChanging(evt, ui) {
        if (confirm) {
            var rows = ui.getSelectedRows();
            var selectedRow = rows.getItem(0);
            var selectedDataKey = selectedRow.get_dataKey();

            alert(selectedDataKey);
        } else {
            return false;
        }
    }

【问题讨论】:

    标签: jquery infragistics ignite-ui iggrid


    【解决方案1】:

    试试 var rowKey = ui.owner.grid.options.primaryKeyValue;

    【讨论】:

      【解决方案2】:

      [...] dataKeyFields: "EmployeeNumber", //你是这样设置dataKeys的吗? [...]

      足够接近。它实际上是像这样的'primaryKey':

      [...]
      主键:“员工编号”,
      [...]

      对于第二部分,我想这不是很明显,但是你作为参数传递的行是被选择的实际 DOM TR 元素,你可以(正如你当前的设置所建议的那样)清楚地选择键形式它的细胞像这样:

      var rowKey = $(ui.row.element).children().eq(0).text(); //may need to parse if int
      

      注意:eq() 方法采用从零开始的索引,就结构而言,行的子元素是单元格。在您的情况下,主键列是第一个(也是唯一一个),因此索引为 0。

      我发现另一种对编程更友好的方法是直接从数据源获取密钥(更清晰易读且无需解析):

      var rowKey = ui.owner.grid.dataSource.dataView()[ui.row.index].EmployeeNumber;
      

      注意:“所有者”是负责事件(选择)的实际小部件,它引用了您的“网格”,您可以从那里访问数据源。要获取记录,请使用 '.data()' 或 '.dataView()' - 后者仅包含索引所基于的实际可见行,如果启用了任何其他功能(分页、排序、过滤),则应使用..).

      这是(在底部)描述选择事件提供的文档页面 - http://help.infragistics.com/NetAdvantage/jQuery/2012.1/CLR4.0?page=igGrid_Selection_Overview.html

      这里是完整的 API 参考:http://help.infragistics.com/jQuery/2012.1/ui.iggridselection#events - 从这里您可以深入了解任何网格/网格功能/数据源 API,并且事件具有示例 sn-ps,并列出了所有有用的参数。

      附:如果目的不是控制用户的选择,请考虑使用 'rowSelectionChanged' 中的 '-ed' 事件 - 可用的参数是相同的。不同之处在于“-ing”是在选择过程中触发的,它会阻塞 UI,如果您添加一些更繁重的逻辑,这可能会导致应用响应速度不快。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-18
      • 2010-11-28
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多