我一直在使用JQGrid很多,並會推薦給大家。 我不太喜歡的一個功能是內置的多選,它不使用像shift和ctrl這樣的特殊按鍵,不會給你太多的控制權並強制顯示覆選框。JQGrid onselectrow events - custom multiselect
我想實現我自己的多重選擇,如下所示: 在onSelectRow-檢查shift或ctrl是否被保持將行ID添加到數組並在網格中選中它。如果沒有保留,清除數組並添加新的行ID並在網格中選擇它。
這很容易實現,除了我需要在onSelectRow事件來檢查是否按住鍵。我不想在主文檔本身上附加一個keydown和keyup事件。
onSelectRow: function (id) {
event=???
if (!event.shiftKey && !event.ctrlKey) {
}
else {
}
}
Regards, Byron Cobb。
編輯:解決方案 -
繼Olegs輸入,我也做了以下內容。
- 集
multiselect: true
網格定義 - 通過設置
$("#myGrid").jqGrid('hideCol', 'cb');
- 檢查Ctrl鍵自己隱藏在
gridComplete
複選框列(不使用多鍵:「中ctrlKey」)之前,選擇和清除選擇,如果沒有按下ctrl鍵。 - 後來使用選擇陣列需要的時候 -
var SelectedRows = $("#myGrid").jqGrid('getGridParam', 'selarrrow');
beforeSelectRow: function (rowid, e) {
if (!e.ctrlKey) {
$("#myGrid").resetSelection();
}
return true;
},
再次感謝。我有我的版本在beforeSelectRow中工作。使用multikey嘗試默認多選:「ctrlKey」僅在ctrl被按下時調用onSelectRow - 是否不清除多選並開始新選擇? – Bob 2010-09-07 10:28:46
在我的beforeSelectRow中,我將它設置爲始終返回true,但是使用multiselect和multikeys(當按住ctrl時)仍然不會調用onSelectRow – Bob 2010-09-07 10:30:12
@Byron Cobb:恭喜!在我看來,你實施的行爲可能對jqGrid的其他用戶來說很有趣。您可以附加您的問題與代碼共享與其他解決方案。此外,您還可以在http://www.trirand.com/blog/發佈它?page_id = 393/feature-request /可能它會成爲下一個版本的jqGrid的一部分。 – Oleg 2010-09-07 10:52:03