2011-06-21 44 views
2

私のjqgridで現在選択されている行があり、 "次へ"と "前へ"と言うボタンがある場合、プログラムでどのようにしますか?最初の調査では、行のIDを取得する必要がありますが、グリッド内の現在選択されている行のインデックスを使用するだけでこれを行う方法はありますか?jqGridはプログラム的に次/前の行に移動します

私の行のIDはシーケンシャルではなく、ランダムな値です。

おかげ

答えて

0

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:eventsによると、行インデックスのプロパティがありますが、それはonSelectRowイベントに渡されません。おそらく、IDを介して行オブジェクトにアクセスして、行インデックス(iRowなど)があるかどうかを確認することができます。そこから、行インデックスiRow + 1で次の行を見つけてください。

0
var rowId; 
var previousRecord = false; 
var array; 

function initGrid() { 

    array = $(ProspectsGrid).jqGrid('getDataIDs'); 

    var i = 0; 

    if (previousRecord == true) 
     i = array.length-1; 



    $(ProspectsGrid).setSelection(array[i]); 

    rowId = array[i]; 

} 


function GetNextRecord() { 



    previousRecord = false; 

    if (rowId != array[array.length - 1]) { 
     var i = 0; 
     while (rowId != array[i]) { 
      i++; 

     } 
     i++; 
     $(ProspectsGrid).setSelection(array[i]); 
     rowId = array[i]; 
    } 
    else { 

     var currentPage = ProspectsGrid.getGridParam("page"); 
     if (currentPage < ProspectsGrid.getGridParam("lastpage")) { 
      ProspectsGrid.setGridParam({ 
       page: currentPage + 1 

      }); 
      ProspectsGrid.trigger("reloadGrid"); 
     } 
    } 
} 

function GetPreviousRecord() { 
    previousRecord = true; 
    if (rowId != array[0]) { 



     var i = 0; 
     while (rowId != array[i]) { 
      i++; 

     } 
     i--; 
     $(ProspectsGrid).setSelection(array[i]); 
     rowId = array[i]; 
    } 
    else { 
     var currentPage = ProspectsGrid.getGridParam("page"); 
     if (currentPage > 1) { 
      ProspectsGrid.setGridParam({ 
       page: currentPage - 1 

      }); 
      ProspectsGrid.trigger("reloadGrid"); 
     } 
    } 
} 
+0

あなたはあなたが投稿したコードを説明した場合、それはさらに良くなるだろう。 –

2
$('#btnNext').click(function() { 

    var grid = $("#grid").jqGrid({...}); 

    var selectedRow = grid.getGridParam('selrow'); 
    if (selectedRow == null) return; 

    var ids = grid.getDataIDs(); 
    var index = grid.getInd(selectedRow); 

    if (ids.length < 2) return; 

    index++; 

    if (index > ids.length) 
    index = 1; 

    grid.setSelection(ids[index - 1], true); 

}); 
関連する問題