1
这是我的多选下拉列的代码。它按照我的预期工作,但我想在编辑模式下进行一些修改。使用表单编辑时,jqgrid多选下拉菜单
{
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,
}
},
但在编辑模式下,我想让多选false.How可以做到。我不明白该怎么做。
在add选项我用以下,但无法正常运行{ recreateForm:真实, closeOnEscape:真实, reloadAfterSubmit:真实, closeAfterAdd:真实, beforeShowForm:函数(){$ .attr($(” #SubjectId')。multiselect() ) –
@janina:1)你应该设置'$('#SubjectId')。attr(“multiple”,“multiple”);'的'multiple'属性。代码'$ .attr($('#SubjectId')。multiselect())'是完全错误的。 2)你使用'buildSelect'。所以'$('#SubjectId')。multiselect();'的调用应该在'setTimeout'内部,并且'beforeShowForm'的全部内部。 – Oleg