setcellvalue不适用于JQWidget网格中的所有页面

时间:2014-04-10 18:18:39

标签: javascript jquery paging setvalue jqwidget

我正在使用带分页的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限制在第一页? 谢谢//

2 个答案:

答案 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') { ......