我很jQuery的初學者,我試圖讓一個簡單的columnChooser工作jqGrid。 我使用jqGrid的導航欄插入「添加/刪除列」按鈕,並在此按鈕的單擊事件上顯示列選擇器。之前加載了multiselect插件後,它使用它來顯示帶有複選框的列。使用jqgrid的columnchooser與埃裏克Hynd的多選
這裏是我的代碼:
$("#myGrid")
.jqGrid({
...
toppager: true,
pager: jQuery('#myPager'),
...
})
.jqGrid('navGrid', "#myPager", { //add the navigator (defaults to the bottom of the grid)
edit: false, add: false, del: false, search: false, refresh: false, //remove all default buttons
cloneToTop: true //clone it, so a new one is created on top of the grid (name of the clone is <id of grid>_toppager)
})
.jqGrid('navButtonAdd', "#myGrid_toppager", { //add a custom button to the cloned navigator
caption: "show/hide columns",
onClickButton: function() {
var colChooser = $("#colchooser_myGrid");
if (colChooser.length == 0) {
$("#myGrid").jqGrid('columnChooser', {
width: 260,
height: 220,
classname: "column-chooser",
msel_opts: {
autoOpen: true,
header: false,
height: "auto",
classes: "column-chooser" },
dlog_opts: { modal: true, resizable: false }
});
}
else {
// ??
}
}
});
我的CSS:
.column-chooser .ui-multiselect-checkboxes {
overflow-y: hidden;
}
我堅持三兩件事:
- 按鈕(確定和取消)是不可見。我在內部html代碼的任何地方都找不到它們。當我刪除選項時,它們會出現,但多選不會調整大小以適應columnChooser對話框。
- 我該如何讓多選選項「不可關閉」?我嘗試在msel_opts對象中添加
beforeclose: function() { return false; }
,並且它可以工作,但是即使在關閉對話框時,多選值始終保持可見。 - 對話框只顯示一次,然後拒絕再次啓動。這似乎是因爲它已經創建,但似乎jqGrid調用在對話框和多重選擇器上都銷燬了,所以我不能再顯示它們。
我使用jQuery 1.4.4,jQuery的UI 1.8.18,jqGrid的4.3.1和多選1.12,火狐11在所有測試