0

ページング付きの JQWidget グリッドを使用してテーブル データを表示し、1 つの列の値を文字列に置き換えています。これは最初のページでは正常に機能しますが、テーブルの次のページを開くと、文字列の置換が得られなくなり、元の値のみが得られます。

私のホームページでは、次のコードを使用しています。これは期待どおりに機能します (表では、'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++) {... ループは開始インデックスから終了インデックスまでである必要があり、開始インデックスは2 ページ目で 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 に答える