近期在搞前端的东西,有一个需求就是需要几个datagrid联动,但是有一个问题就是如果要双向联动,比如在datagrid1中点击会触发datagrid2的勾选,datagrid2勾选也会触发datagrid1的勾选,则会造成两个datagrid之间会相互触发,难以调试。
然后我就大体看了下datagrid的代码,找到了直接设置datagrid被勾选以及将勾选的数据放置到已勾选(确保getChecked/getSelections时数据返回无误)的数据集中,记录一下防止遗忘。
$('#datagrid的table的id').data('datagrid').options.
finder.getTr($('#datagrid的table的id')[0],"需要选中的数据index").
// 向需要的行中增加选中的class,如果datagrid未设置idField,则会根据这个class去获取被选择的数据
addClass("datagrid-row-checked")
// 设置此条记录被勾选的样式
.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true);
// 放入被选中的数据集中,如果设置datagrid设置了idField,则被选择的数据会从这里获取
$('#datagrid的table的id').data('datagrid').checkedRows.push("选中的数据");
同时需要注意的是datagrid的选中和勾选的数据集不是一个,设置时根据需要进行设置。