首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Infragistics网格主键

Infragistics网格主键
EN

Stack Overflow用户
提问于 2012-08-21 00:00:27
回答 2查看 3.7K关注 0票数 3

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

代码语言:javascript
复制
$("#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)?

代码语言:javascript
复制
    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;
        }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-21 19:46:10

...dataKeyFields:"EmployeeNumber",//这是您设置dataKeys的方式吗?...

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

...

primaryKey:"EmployeeNumber",

..。

对于第二部分,我猜这不是很明显,但是作为参数传递的行是被选择的实际DOM TR元素,并且您可以(正如您当前的设置所建议的那样)直接从它的单元格中选取键,如下所示:

代码语言:javascript
复制
var rowKey = $(ui.row.element).children().eq(0).text(); //may need to parse if int

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

我发现另一种对编程更友好的方法是直接从数据源获取键(更容易阅读,不需要解析):

代码语言:javascript
复制
var rowKey = ui.owner.grid.dataSource.dataView()[ui.row.index].EmployeeNumber;

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

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

这里有一个完整的应用编程接口参考:http://help.infragistics.com/jQuery/2012.1/ui.iggridselection#events -从这里你可以深入研究任何网格/网格功能/数据源应用编程接口,事件都有列出了所有有用参数的示例片段。

附注:如果目的不是控制用户的选择,请考虑使用'-ed‘事件,就像'rowSelectionChanged’中一样-可用的参数是相同的。不同的是,“-ing”是在选择过程中触发的,它会阻塞UI,如果你添加了更多的重逻辑,这可能会导致应用程序响应不是很快。

票数 7
EN

Stack Overflow用户

发布于 2015-08-20 11:33:47

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12041098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档