Jqgrid edittype : select editoptions: dataUrl 没有被调用来填充数据
Posted
技术标签:
【中文标题】Jqgrid edittype : select editoptions: dataUrl 没有被调用来填充数据【英文标题】:Jqgrid edittype : select editoptions: dataUrl is not called to populate the data 【发布时间】: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? 【参考方案1】:它应该被调用,但你的数据将被更新填充,因为你覆盖了 ajaxSelectOptions 中的成功函数。
为了得到响应,请评论成功功能或将其删除
$("#grid").jqGrid(
url: "./info",
datatype: "json",
mtype: "GET",
ajaxSelectOptions:
type: "GET",
dataType: "json"
,
....
);
更新:只需稍作改动,您的代码就可以正常工作。这是link to your code
请注意,格式化程序没有选项 dataUrl。它仅在编辑中可用。
【讨论】:
删除成功函数不会导致任何变化。仍然没有调用 url 我已经更新了答案 非常感谢。它的工作我已经接受它作为正确答案(y)以上是关于Jqgrid edittype : select editoptions: dataUrl 没有被调用来填充数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用<SELECT> editoptions一列时,得到选择在jqGrid的价值