我正在使用带分页的JQWidget网格来显示表数据,我用一个字符串替换一列中的值。这适用于初始页面,但是当我打开表格中的下一页时,我不再获得字符串替换,只有原始值。
我的主页使用此代码,该代码按预期工作(' A'' W'由' newString'' newString2&#替换39;在表中):
$("#jqxgrid").bind("bindingcomplete", function (event) {
var numrows = $("#jqxgrid").jqxGrid('getrows');
for (i = 0; i < numrows.length; i++) {
var value = $("#jqxgrid").jqxGrid('getcellvalue', i, 'column');
if (value == 'W') {
$("#jqxgrid").jqxGrid('setcellvalue', i, 'column', 'newString');
}
else if (value == 'A') {
$("#jqxgrid").jqxGrid('setcellvalue', i, 'column', 'newString2');
}
});
我为新页面尝试了一些想法,例如将上面的绑定函数放入基于页面数的循环中:
var paginginfo = $("#jqxgrid").jqxGrid('getpaginginformation');
for (i = 0; i < paginginfo.pagescount; i++) { ...
我还尝试将绑定函数放在与页面更改事件关联的另一个函数中:
$("#jqxgrid").bind("pagechanged", function (event) {
$("#jqxgrid").bind("bindingcomplete", function (event) { ...
但这些都没有奏效。 也许&#39; numrows&#39;将setcellvalue限制在第一页? 谢谢//
答案 0 :(得分:1)
&#34;绑定功能&#34;它不是一个函数,它是一个通常在绑定完成后引发的事件,通常你试图绑定到另一个事件中的事件,而这通常不会产生任何结果。循环代码 - for(i = 0; i&lt; numrows.length; i ++){...在虚拟分页的情况下可能不起作用,因为循环应该从起始索引到结束索引和起始索引在第二页上不会为0。
答案 1 :(得分:0)
我发现这个解决方法..我不确定这是否真的万无一失,但它似乎工作到目前为止..如果你知道一个更精确的解决方案请发布...
$("#jqxgrid").bind("bindingcomplete", function (event) {
var paginginfo = $("#jqxgrid").jqxGrid('getpaginginformation');
var pagenum = paginginfo.pagenum;
var pagesize = paginginfo.pagesize;
var pageRows = (pagenum + 1) * pagesize;
for (var i = 0; i < pageRows; i++) {
var value = $("#jqxgrid").jqxGrid('getcellvalue', i, 'currTrafDir');
if (value == 'W') { ......