2012-03-17 60 views
0

使用來自Set rownumbers to false dynamically in jqgrid的答案我創建了行號切換按鈕。 最初行號不顯示。按鈕點擊被忽略,行號列不被添加。 如何強制按鈕添加行號列? 或者是否可以添加選項到列選擇器來切換行號列?這會更好,不需要額外的按鈕。用戶如何在jqgrid中切換行號

var rownumbers= isColState ? myColumnsState.rownumbers : false; 
$("#grid_toppager_left table.navtable tbody tr").append(
     '<td class="ui-pg-button ui-corner-all">' + 
      '<div class="ui-pg-div my-nav-checkbox">' + 
      '<input tabindex="-1" type="checkbox" id="RowNumbers" ' + (rownumbers ? 'checked ' : '')+'/>' + 
      '<label title="Toggle row numbers"' + 
      ' for="RowNumbers">Toggle row numbers</label></div></td>' 
    ); 
$("#RowNumbers").button({ 
     text: false, 
     icons: {primary: "ui-icon-grip-dotted-vertical"} 
    }).click(function() { 
     rownumbers = !rownumbers; 
     if (rownumbers) { 
      $grid.jqGrid('showCol', 'rn'); 
     } else { 
      $grid.jqGrid('hideCol', 'rn'); 
      } 
     saveWindowState(); 
    }); 

更新

的jqGrid還包含多項選擇和_actions列。在loadcomplete新行被添加使用

var newRowData = { Dokumnr: 123, 
    Reanr: $grid[0].rows.length + 1 
}, 
newRowId = '_empty' + $.jgrid.randId(); 
$grid.jqGrid('addRowData', newRowId, newRowData); 

結束網格如果行號碼在負載之後的第一時間導通,在添加的行多選列複選框出現在rown號柱:

checkbox in row number column

如何解決這個問題?

回答

1

您必須以任何方式包含rownumbers: true以創建行號。如果你想要最初沒有顯示行號,你應該在創建網格後調用$grid.jqGrid('hideCol', 'rn');。您可以額外設置rownumbers$grid.jqGrid('setGridParam', {rownumbers: false});,但我認爲這不是必需的。

之後,您可以像最初一樣使用按鈕$("#RowNumbers")。可能您可以考慮將rownumbers選項設置爲truefalse以及showColhideCol,並使用rownumbers選項而不是rownumbers變量。

修訂:的addRowData當前的代碼只是測試的jqGrid的rownumbers選項是否true

var ni = t.p.rownumbers===true ? 1 :0; 
    gi = t.p.multiselect ===true ? 1 :0; 
    si = t.p.subGrid===true ? 1 :0; 

取決於數值是計算數據的位置:

prp = t.formatCol(ni,1,'', null, rowid, true); 

所以我應該糾正我的答案。您不應該更改rownumbers選項的值。即使對應的列將被隱藏,它也應始終保持爲true

+0

謝謝。優秀的建議。我實現了它們,但如果行號在firts時間切換,多行選中的複選框會出現在行號列中。如何解決這個問題?我更新了問題 – Andrus 2012-03-18 09:22:20

+0

@Andrus:看來要解決這個問題,你不應該改變jqGrid的'rownumbers'選項。它應該始終保持「真實」。 – Oleg 2012-03-18 09:51:50

+0

謝謝。如何查找切換和網格狀態保存的行號的當前狀態?我應該檢查是隱藏狀態的rownumbers列嗎?如果是,如何檢查? – Andrus 2012-03-18 13:28:33