我尝试使用在jqgrid内联编辑中填充数据网址的多重选择。这个现在工作正常。
但处理不是很舒服。所以我尝试添加Eric Hynds JQuery UI Multiselect(http://www.erichynds.com/blog/jquery-ui-multiselect-widget)
{ editable: true, edittype: 'select', editoptions: { dataInit: function (elem) {
setTimeout(function () {
$(elem).multiselect({
minWidth: 100,
height: 'auto',
selectedList: 2,
checkAllText: 'all',
uncheckAllText: 'no',
noneSelectedText: 'Any',
open: function() {
var $menu = $('.ui-multiselect-menu:visible');
$menu.width('auto');
return;
}
});
}, 50);
}, dataUrl: '/Users', "multiple":true }, width: 11, name: 'ExcludedUsers' }
这会在行编辑时显示jQuery UI多选小部件,但多选小部件为空。因为看起来在调用initdata函数之后加载了dataurl内容,并且多选小部件无法在dataurl加载的select元素上注册。
我该如何解决这个问题?
答案 0 :(得分:2)
select元素的加载时间超过了setTimeout函数的50ms。 将值更改为150后,它完美无缺。
setTimeout(function () {
$(elem).multiselect({
minWidth: 100,
height: 'auto',
selectedList: 2,
checkAllText: 'all',
uncheckAllText: 'no',
noneSelectedText: 'Any',
open: function() {
var $menu = $('.ui-multiselect-menu:visible');
$menu.width('auto');
return;
}
});
}, 150);