2013-02-06 183 views
0

我有我的網格中的複選框具有下列代碼的方式:jqGrid的選擇複選框

 colNames: [..., 'Select'], 
    ... 
    ... 

    { name: 'act', index: 'act', width: 30, sortable: false } 
    .... 

    <input type="button" id="bUpload" value="Upload Report" /> 

用戶點擊上傳按鈕什麼,用戶已經選擇此列多個複選框,我喜歡顯示一條消息。我不知道如何做到這一點。

我嘗試以下,但

 $("#bUpload").click(function() { 

     var selectedRow; 

     if ($("input:checked").length > 1) 
     { 
      alert('Error - Please select only one row.'); 
      return false; 
     } 


     if ($("input:checked").length > 0) 
     {    
      $("input:checked").each(function() 
      { 
      selectedRow = this.value ; 
      }); 
     }  

....

這工作,但爲什麼我不喜歡這樣做的原因是因爲我可以有其他的複選框其他列,以及到那裏可能會混淆他們是否從「行爲」欄中選擇。我該怎麼說,如果專欄是'行爲',然後檢查選擇了多少。

+0

你能發佈更多的實施細節嗎?至少由於複選框按鈕具有'id'屬性,目前的代碼似乎非常可疑。首先看看格式化器:「複選框」的用法,formatoptions:{disabled:false}'是你的最佳選擇。您可以額外使用'beforeSelectRow'或'onCellSelect'來檢查複選框。 – Oleg

回答

0

您可以遍歷網格上的每一行並測試每一行。

//iterate over each row 
var rowIds = $('#gridName').jqGrid('getDataIDs'); 

for (i = 1; i <= rowIds.length; i++) { 
    rowData = $('#gridName').jqGrid('getRowData', i); 

    if(rowData['act'] //etc..checkbox check) { 

    }//if 
}//for 
+0

謝謝,但這似乎並不奏效。我們爲什麼傳遞我。這不是每行的價值嗎? –

+0

我是行的編號,因爲您正在迭代網格的每一行。這可以讓你檢查你關心的單元格的值。 – Mark

+0

我可以在哪裏使用this.Value以獲取檢查的值? –