var rowIndex = $('#tt').datagrid('getRowIndex', id);//id是关键字值 var data = $('#tt').datagrid('getData').rows[rowIndex]; var oname = data.operator;//operator是属性值
$("#grid").datagrid({ idField : 'id', title : '', url : '', fit : true, loadMsg : '数据加载中...', pageSize : 10, pagination : true, sortOrder : 'asc', rownumbers : true, // 显示行号 singleSelect : false, fitColumns : false, striped : true, showFooter : true, frozenColumns : [ [] ], columns : [ [] ], onLoadSuccess : function(data) { grid.datagrid("clearSelections"); }, onClickRow : function(rowIndex, rowData) { } });var rows = $(grid).datagrid('getSelected');
发现在datagrid设置idField后,尽管在onLoadSuccess里有清除选中状态,但是在rows里仍会有上一页的选中记录值。
这样的话,批量删除功能,将会导致数据删除错误。所以不能设置idField。到这儿我们就了解了idField的注意事项。
注意1
这里要强调的是selectedRows
中的值只能通过取消选择,或者unselectAll
取消 【当前页】 的选择,即使重新加载数据,或者清空数据,都不会影响selectedRows
中的值。想要取消全部选择怎么办?你可以使用clearSelections
方法:
<code class="language-javascript hljs has-numbering">$(<span class="hljs-string">'#id'</span>).datagrid(<span class="hljs-string">'clearSelections'</span>);</code>
当你只想获取当前页的选择项时,最好的解决方法就是不设置idField
属性。否则就要自己处理好调用clearSelections
的时机。
注意2
合理的使用idField
还可以实现翻页选择(checkbox一样),这种情况下,你的datagrid
能记住每一页的选中情况,而且通过getSelections
(或getChecked
)来获取所有页中选中的行。
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow