【发布时间】:2021-12-25 17:14:42
【问题描述】:
我正在尝试使用 jqgrid 中的选择框填充其中一列。下面是代码。
$(document).ready(function(){
$("#grid").jqGrid({
url: "./info",
datatype: "json",
mtype: "GET",
ajaxSelectOptions:{
type: "GET",
dataType: "json",
success: function (result) {
console.log(result);
}
},
colNames: ["DeptId", "DeptName", "StuId", "StuName", "StuDoj"],
colModel: [
{ name: "deptId", hidden:true },
{ name:"deptName", width:90, editable:true, edittype:'select', formatter:'select', editoptions:{
dataUrl:'./getDepts',
buildSelect: function(res){
console.log(res);
var s='<select id="dept" name="dept">'
$.each(res,function(idx,obj){
$('#dept')
.append($('<option>', { value : obj.deptId })
.text(obj.deptName));
});
return s+"</select>";
}
}},
{ name: "studentId", hidden:true },
{ name: "studentName", width: 80,editable:true },
{ name: "studentDoj",width: 90,editable:true }
],
pager: "#pager",
rowNum: 5,
rowList: [5, 10, 20],
sortname: "empId",
sortorder: "asc",
sortable:true,
viewrecords: true,
gridview: true,
caption: "MyGrid",
jsonReader: {
repeatitems: false,
id: "empId",
root: function (obj) { return obj; },
page: function (obj) { return 1; },
total: function (obj) { return 1; },
records: function (obj) { return obj.length; }
}
});
$("#grid").jqGrid('navGrid','#pager',{add:false,view:true,search:true});
})
在 colModel 'deptName' 的 editOptions 中,不会调用 dataUrl 来填充选择框。 jqgrid 使用 /info resturl 填充,它获取特定学生的部门名称。我希望 deptName 是类型选择框,它的值应该与使用 info rest url 获取的 deptName 相同
【问题讨论】:
-
如何判断dataUrl没有被调用?您可能指向了错误的网址。请查看调试控制台 (F12) 看看会发生什么。
-
@TonyTomov 使用调试工具我确认它不是通过网络选项卡确定的
-
使用哪个版本的jqGrid?
标签: javascript jquery jqgrid