我想使jqgrid列選擇器彈出可拖動在屏幕中的任何位置。使JqGrid列選擇器彈出可拖動
因此,我試圖改變jquery.jqgrid.js
爲:
columnChooser: function (opts) {
var self = this;
if ($("#colchooser_" + $.jgrid.jqID(self[0].p.id)).length) { return; }
var selector = $('<div id="colchooser_' + self[0].p.id + '" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>');
var select = $('select', selector);
function insert(perm, i, v) {
if (i >= 0) {
var a = perm.slice();
var b = a.splice(i, Math.max(perm.length - i, i));
if (i > perm.length) { i = perm.length; }
a[i] = v;
return a.concat(b);
}
}
opts = $.extend({
"width": 'auto',
"height": 260,
"classname": null,
"done": function (perm) { if (perm) { self.jqGrid("remapColumns", perm, true); } },
/* msel is either the name of a ui widget class that
extends a multiselect, or a function that supports
creating a multiselect object (with no argument,
or when passed an object), and destroying it (when
passed the string "destroy"). */
"msel": "multiselect",
/* "msel_opts" : {}, */
/* dlog is either the name of a ui widget class that
behaves in a dialog-like way, or a function, that
supports creating a dialog (when passed dlog_opts)
or destroying a dialog (when passed the string
"destroy")
*/
"dlog": "dialog",
"dialog_opts": {
"minWidth": 550
},
"draggable": function (IsDraggable) {
if (IsDraggable) {
this.draggable();
}
},
....
....
....
....
....
}
我的代碼是在上述功能的最後一個屬性draggable
。 即我創建了一個可拖動屬性,它是像下面:
"draggable": function (IsDraggable) {
if (IsDraggable) {
this.draggable();
}
但我的選擇列不列入我的彈出式變爲可拖動。
我感到驚訝。 我想將我的列選擇器移動到屏幕上任何地方的jqgrid
。
是。我接受。我在一個項目中,我試圖在jqgrid中實現該功能。在此嘗試成功後,我將擴展jqgrid列選擇器。當然,我已經包括了你提到的所有文件。 – Vikash
@Vikash:嘗試[示例](http://www.ok-soft-gmbh.com/jqGrid/OK/columnChooserCustumButton.htm)。可以通過拖放來移動對話框,可見列可以在左側窗格內重新排序,也可以通過從左側窗格拖動到右側窗格進行隱藏。演示中還缺少其他拖放功能?您可以打開代碼並查看演示中包含的所有文件。 – Oleg
非常感謝。我得到了解決方案。 – Vikash