嗨Oleg / JqGrid成员
我已经看到了同样的问题,你已经为很多人修好了。如果你有时间,请帮忙。
我想维护页面到页面的复选框选择。
我使用MVC从JSon获取数据并渲染到Grid。请在下面找到我的代码。
组织拥有所有数据。
function RenderGrid() {
var mydata = organisations;
$grid = $("#gridOrganisation");
var cbColModel;
$grid.jqGrid({
width: 1030,
height: 255,
datatype: 'local',
data: mydata,
colNames: ['Org_MID', 'P_MID', 'Candidate_Detail', 'CompanyName', 'StreetAddress', 'City', 'PostCode', 'Country', 'EmailDomain', 'VATNo', 'IsLinked', 'NotLinked'],
colModel: [
{ name: 'Org_MatchCandidateID', index: 'Org_MatchCandidateID', sorttype: 'int', hidden: true, width: 60 },
{ name: 'PredefinedMatchID', index: 'PredefinedMatchID', hidden: true, sorttype: 'int', width: 50 },
{ name: 'Candidate_Detail', index: 'Candidate_Detail', sorttype: 'string', width: 100 },
{ name: 'CompanyName', index: 'CompanyName', width: 150, sorttype: 'string', align: "left" },
{ name: 'StreetAddress', index: 'StreetAddress', width: 150, sorttype: 'string', align: "left" },
{ name: 'City', index: 'City', width: 75, sorttype: 'string', align: "left" },
{ name: 'PostCode', index: 'PostCode', sorttype: 'string', width: 60 },
{ name: 'Country', index: 'Country', sorttype: 'string', width: 60 },
{ name: 'EmailDomain', index: 'EmailDomain', width: 100, sorttype: 'string', sortable: true },
{ name: 'VATNo', index: 'VATNo', width: 50, sorttype: 'string' },
{ name: 'Count_IsLinked', index: 'Count_IsLinked', sorttype: 'int', width: 50 },
{ name: 'Count_NotLinked', index: 'Count_NotLinked', sorttype: 'int', width: 50 }
],
rowNum: 15,
rowList: [15, 30, 45],
pager: '#pager5',
gridview: true,
rownumbers: true,
multiselect: true,
idsOfSelectedRows: [],
onSelectRow: function (id, isSelected) {
//var row = jQuery("#gridOrganisation").jqGrid('getGridParam', 'selrow');
var ret = jQuery("#gridOrganisation").jqGrid('getRowData', id);
//alert(ret.Org_MatchCandidateID);
id = ret.Org_MatchCandidateID;
var p = this.p, idsOfSelectedRows = p.idsOfSelectedRows, item = p.data[p._index[id]], i = $.inArray(id, idsOfSelectedRows);
item.cb = isSelected;
if (!isSelected && i >= 0) {
idsOfSelectedRows.splice(i, 1); // remove id from the list
} else if (i < 0) {
idsOfSelectedRows.push(id);
//alert(id);
}
},
loadComplete: function () {
var p = this.p, idsOfSelectedRows = p.idsOfSelectedRows, data = p.data, item, $this = $(this), index = p._index, rowid, i, selCount;
//alert(idsOfSelectedRows);
for (i = 0, selCount = idsOfSelectedRows.length; i < selCount; i++) {
rowid = idsOfSelectedRows[i];
item = data[index[rowid]];
if ('cb' in item && item.cb) {
$this.jqGrid('setSelection', rowid, false);
}
}
},
sortname: 'CompanyName',
viewrecords: true,
sortorder: "asc",
caption: "Organisations Data"
}).navGrid("#pager5", { edit: false, add: false, del: false });
$("#cb_" + $grid[0].id).hide();
$("#jqgh_" + $grid[0].id + "_cb").addClass("ui-jqgrid-sortable");
cbColModel = $grid.jqGrid('getxColProp', 'cb');
cbColModel.sortable = true;
cbColModel.sorttype = function (value, item) {
return 'cb' in item && item.cb ? 1 : 0;
};
}
$('#divGridOrganisation').show();
});
显然绑定到JQgrid很好,当我从页脚点击任何一个时,问题是复选框不是持久性的。例如:Page 1 - 2和2 - 3等。
以下是Html代码
<table id="gridOrganisation" ></table>
<div id="pager5"></div>
如果您需要什么,请告诉我。