2012-02-10 6 views
1

列の並べ替えが発生したときにレコードを失うJQGridに問題があります。 400件のレコードがある場合、ソートが発生した場合、レコード数が20JQGridが列ソートのレコードを失う

$("#grdCaseFind").jqGrid({ 
    datatype: "local", 
    height: 250, 
    colNames:['SeqNo', 'Report Title', 'Location', 'Status', 'Date', 'Officer Name', 'Incident No.'], 
    colModel:[ 
    {name:'SeqNo',index:'SeqNo', hidden:true}, 
    {name:'RepTitle',index:'RepTitle', align:"center", width:200}, 
    {name:'CaseAddr',index:'CaseAddr', align:"center", width:200}, 
    {name:'RepStatus',index:'RepStatus', align:"center", width:50}, 
    {name:'CaseBeginDate',index:'CaseBeginDate', width:70, align:"center"}, 
    {name:'RepOfficerName',index:'RepOfficerName', width:100, align:"center"}, 
    {name:'IncidentNo',index:'IncidentNo', width:80, align:"center"}, 
    ], 
    multiselect: false, 
    caption: "", 
    onSelectRow: function (rowid, status) { 
    if (status === false) { 
     $(this).resetSelection(); 
     $("#btnOpen").attr("disabled", true); 
    } else { 
     $("#btnOpen").attr("disabled", false); 
     $("#CaseSelectedIndex").val($("#grdCaseFind").getCell(rowid, "SeqNo")) 
    } 
    }, 
    ondblClickRow: function (rowid, iRow, iCol, e) { 
    document.getElementById("btnOpen").click(); 
    }, 
    onSortCol: function (index, iCol, sortoder) { 
    $("#btnOpen").attr("disabled", true); 
    } 
}); 

まで低下例えば、データは、フォーム自体に記憶されたJSON配列から充填されます。

grdCaseFindData = strFindResult.grdCaseFind; 
    $(grdCaseFindData).each(function (i, e) { 
     $("#grdCaseFind").addRowData(i + 1, e); 
     $("#grdCaseFind").attr("rowNum", i + 1); 
    }); 

以前にこの問題に遭遇し、レコードを数え、「rowNum」属性を設定することで問題は修正されました。私の他のグリッドでは、唯一の違いは、JSON配列を返すサーバーへの呼び出しによってレコードをロードしていることです。なぜこのグリッドが他のものと同じように動作していないのかのアイデアですか?

答えて

3

質問は無視してください。明らかに、グリッドが初期化された後に、rowNum属性を動的に設定することに問題があります。私はこれまで見つかったの周りだけの仕事しかJQGridの以前のバージョンで動作のいずれかに

rowNum: -1 

、またはMAXINTサイズにそうではない天文学的に高い数値です

rowNum: 9007199254740992 

ました到達する。

誰かがより洗練された現在の解決策を知っている場合は、私の答えを修正してください。

関連する問題