这是我的multiselect下拉列的代码。它按预期工作,但我想在编辑模式上进行一些修改。
{
name: 'SubjectId',
index: 'SubjectId',
align: 'center',
hidden: true,
viewable: true,
editrules: { edithidden: true },
editable: true,
formatter: 'select',
editable: true,
edittype: 'select',
editoptions: {
multiselect: true,
dataUrl: '@Url.Action("getAllSubjects", "Subject")',
//buildSelect: function (data) {
//var retValue = $.parseJSON(data);
buildSelect: function (data) {
var response, s = '<select>', i;
response = jQuery.parseJSON(data);
// s += '<option value="0">--Select Subject--</option>';
if (response && response.length) {
$.each(response, function (i) {
s += '<option value="' + this.Id + '">' + this.SubjectName + '</option>';
});
}
return s + '</select>';
},
dataInit: function (elem) {
setTimeout(function () {
$('#SubjectId').multiselect();
}, 5);
},
multiple: true,
}
},
但是在编辑模式下,我想让多选错误。怎么做。我不明白怎么做。
答案 0 :(得分:1)
首先,您的代码输入错误:应使用dataInit
代替ddataInit
。
如果您只需要在添加表单而不是编辑表单中使用multiselect
,我建议您最好不要使用multiselect: true
和dataInit
。相反,您可以使用beforeShowForm
回调(请参阅the documentation)。在回调内部,您可以设置multiple
属性(请参阅jQuery.attr)并致电$('#SubjectId').multiselect();
。如果您只为“添加”表单指定此类beforeShowForm
回调,则应具有所需的行为。对于添加和编辑表单,您应该使用recreateForm: true
property。