Boo*_*one 3 jquery infragistics ignite-ui iggrid
我正在尝试在我的网格上进行行选择,但我正在努力设置或获取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
}
]
});
});
Run Code Online (Sandbox Code Playgroud)
这根本不起作用.如何在此部分代码中访问我的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;
}
}
Run Code Online (Sandbox Code Playgroud)
[...] dataKeyFields:"EmployeeNumber",//这是你设置dataKeys的方法吗?[...]
足够近.它实际上是'primaryKey',如下所示:
[...]
primaryKey:"EmployeeNumber",
[...]
而对于第二部分,我想这并不是很明显,但是你作为参数传递的行是正在选择的实际DOM TR元素,你可以(正如你当前的设置所示)明确地从其单元格中选择键形式所以:
var rowKey = $(ui.row.element).children().eq(0).text(); //may need to parse if int
Run Code Online (Sandbox Code Playgroud)
注意:eq()方法采用基于零的索引,并且就结构而言,行的子元素是单元格.在这种情况下,主键列是第一个(也是唯一的),因此索引为0.
我发现程序友好的另一种方法是直接从数据源获取密钥(更清楚地阅读并且不需要解析):
var rowKey = ui.owner.grid.dataSource.dataView()[ui.row.index].EmployeeNumber;
Run Code Online (Sandbox Code Playgroud)
注意:"所有者"是负责事件的实际小部件(选择),它具有对"网格"的引用,您可以从中访问数据源.要获取记录,请使用'.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,并且事件包含所有有用的示例代码段列出的参数.
PS如果意图不是控制用户的选择,请考虑使用'-ed'事件,如'rowSelectionChanged' - 可用的参数是相同的.区别在于'-ing'在选择中被触发并且它会阻止UI,如果你添加一些更重的逻辑,这可能会导致应用程序响应不是很快.
| 归档时间: |
|
| 查看次数: |
3523 次 |
| 最近记录: |