2013-05-08 50 views
1

我是Dojo的新手,遇到一個讓我完全陷入困境的問題。我正在使用增強型網格在Dojo中創建數據網格。增強網格中的行選擇

網格中的每一行都有一個可用於選擇該行的複選框。該複選框已使用indirectselection插件實現。

現在,當我選擇一行使用複選框一切工作正常。但是當我通過點擊其他數據單元來選擇一行時,該行不會被選中!

繼承人的DataGrid的JSP部分

<table data-dojo-id="grid" data-dojo-type="dojox.grid.EnhancedGrid" plugins="{indirectSelection: {headerSelector:true}, filter: true,pagination: true}" 
    data-dojo-props="store:icGrid, 
    clientSort:true " formatterScope="myFormatters" 
    style="width: 100%; height: 20em;"> 
    <thead> 
     <tr> 
     <th width="25%" field="empNo" formatter="formatLink">empNo</th> 
     <th width="25%" field="name">name</th> 
     <th width="25%" field="email">email</th> 
     <th width="25%" field="phone">phone</th> 
    </tr> 
    </thead> 
</table> 

如果我刪除代碼指的是間接選擇(插件=「{indirectselection ...)的行獲得選擇當我點擊其他數據單元(如他們應該),但我還需要的是indirectselection工具。

有沒有辦法讓indirectselection工作不帶走行選擇功能的複選框?

看看頁面我的網格將鏈接如下需要

http://dojotoolkit.org/documentation/tutorials/1.8/working_grid/demo/selector.php

回答

1

我設法解決這個問題通過1.使用cellClick事件來偵聽2.單擊單元格時獲取單元格的rowindex 3.將其設置爲選中狀態。

grid.on("CellClick", function(event) 
    { 
     var rowId = event.rowIndex; 
     grid.selection.setSelected(rowId, true); 
     grid.render(); 
      } 

grid.selection.getSelected();沒有返回選定的行,我想知道這是否是兼容性問題?這似乎是當我使用indirectSelection插件行選擇行爲在意想不到的方式。

0

你有沒有聽說過DGRID是(與複選框的最後一個網格的頁面)的作品一樣, 的網格。 我認爲你應該檢查它。 道場真的很好用。

以下是一些有用的網站。

Dgrid Main webpage

Git hub Documentation

+0

是的。看起來我的團隊決定不出於某種原因使用DGrid。所以我正在尋找一個適用於現有EnhancedGrid的修補程序。 – 2013-05-09 04:39:19

0

使用此代碼下面聽電網選擇和檢查什麼selectedRows返回,並使用該行的索引toggleRow

dojo.connect(grid, "onRowClick", function(e) { 
    var selectedRows= grid.selection.getSelected(); 
    grid.rowSelectCell.toggleRow(selectedRows[i], true); 
}); 
+0

grid.selection.getSelected沒有返回選定的行!我無法弄清楚爲什麼。但我設法通過使用CellClick事件並獲取'event.rowIndex'並將其設置爲選中來解決此問題。 – 2013-05-10 04:41:35

0

簡單代碼: - 「SelectionChanged」even甚至可用。所以這樣的代碼: -

grid.on("SelectionChanged", function(event) 
    { 
     var rowId = event.rowIndex; 
     grid.selection.setSelected(rowId, true); 
     grid.render(); 
      } 
0

「SelectionChanged」甚至可用。所以這樣的代碼: -

grid.on("SelectionChanged", function(event) 
    { 
     var rowId = event.rowIndex; 
     grid.selection.setSelected(rowId, true); 
     grid.render(); 
    }