3

サービス呼び出しの後に jqgrid の特定の列をインクリメントしてから、を使用して自動ソートを行っていますsortable:true,sortorder:asc,sorttype:int。私が並べ替えているとき、列の値は復元されず、消えてからグリッドが並べ替えられます。並べ替え後でも値を復元できるように、誰かがこの状況で私を助けることができますか?

here is the code, 

$('#gridValue)
      .jqGrid(
           {

            datastr :parsedObj,
            datatype :'jsonstring',
            height :140,
            width :240,
            colNames : [ "Id","Name","Count" ],
            colModel : [ {
               name :'id',
               index :'id',
               width :30,
               align :'left',
               sortable :true
            }, {
               name :'name',
               index :'name',
               width :30,
               align :'left'
            }, {
               name :'count',
               index :'count',
               width :20,
               align :'left',
               sortable :true
             }],

             rowNum :20,
             sortname : 'id',
             sorttype :'int',
             scroll :true,
             viewrecords :true,
             shrinkToFit :false,
             hoverrows :true,
             cellEdit :true,
             loadonce :true,
             sortorder :'asc',

               jsonReader : {
                   root :'paramValue',
                   repeatitems :false,
                   page : function(parsedObj) {
                   return 1;
                   },
                   total : function(parsedObj) {
                   return 1;
                   },
                   records : function(parsedObj) {
                   }
                   },
               gridComplete : function() {
                   var gridTable = document
                            getElementById("gridValue");
                   var gridTableCount = gridTableCount.rows.length;
                   if (gridTableCount> 1) {
                      for (countId = 1; countId < gridTableCount; countId++) {
   document.getElementById("gridValue").rows[countId].cells[2].innerHTML = '0';                                                                   }
                                                                }
                                                        }
                                        });     
                        $("#gridValue").setGridParam({
                                sortname : 'count',
                                sortorder : 'asc'
                        }).trigger('reloadGrid');
                   }

//After service call i will be calling this function to update value in grid
function incrementingValue(){
     document.getElementById("gridValue").rows[countId].cells[2].innerHTML =1;
}

しかし、グリッドで自動ソートした後、値は保持されません.Plsは私に解決策を提供します

4

1 に答える 1

1

id列をに変更します

{名前:'id'、インデックス:'id'、幅:30、整列:'左'、並べ替え可能:true、フォーマッター:incrementingValue}

次に、グリッドコードの後に​​関数を追加して、増分を処理します

var counter; //when calling the service you can increase your value to the counter
function incrementingValue(cellvalue, options, rowObject) {
    //var cellValueInt = parseInt(cellvalue); // this bring the existing cell value
    return counter=1;
    }
}; 
于 2013-01-04T23:23:21.127 に答える