0

我正在使用带有分页功能的 JQWidget 网格来显示表格数据,并且我正在用字符串替换一列中的值。这适用于初始页面,但是当我打开表中的下一页时,我不再得到字符串替换,只有原始值。

我的主页使用此代码,它按预期工作(表中的'A'和'W'被'newString'和'newString2'替换):

            $("#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) { ...

但这些都不起作用。也许“numrows”将 setcellvalue 限制在第一页?谢谢 //

4

2 回答 2

1

“绑定函数”不是一个函数,它是一个通常在绑定完成后引发的事件,通常您尝试绑定到另一个事件中的一个事件并且通常不会产生任何结果。您循环代码 - for (i = 0; i < numrows.length; i++) {... 在虚拟分页的情况下可能不起作用,因为循环应该从开始索引到结束索引,而开始索引不会在第二页上不是 0。

于 2014-04-11T07:44:40.617 回答
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') { ...... 
于 2014-04-11T15:03:17.850 回答