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