Jquery 即使使用dataUrl从服务器资源定义返回响应,也未调用Jqgrid buildselect函数
我正在尝试在用于搜索目的的jqgrid中填充我的自定义选择元素。我正在使用ajaxselectoptions、dataurl和buildselect构建我的自定义选择元素。使用以下代码Jquery 即使使用dataUrl从服务器资源定义返回响应,也未调用Jqgrid buildselect函数,jquery,jqgrid,Jquery,Jqgrid,我正在尝试在用于搜索目的的jqgrid中填充我的自定义选择元素。我正在使用ajaxselectoptions、dataurl和buildselect构建我的自定义选择元素。使用以下代码 ajaxSelectOptions: { method: 'GET', dataType: 'json', success:function(response){ consol
ajaxSelectOptions: {
method: 'GET',
dataType: 'json',
success:function(response){
console.log("getGenders",response);
}
},
-- the below code is a part of colmodel option
name: 'empGender',
editable: true,
edittype:'select',
formatter:'select',
editoptions:{value:":All;M:Male;F:Female"},
stype: 'select',
search: true,
searchoptions: {
dataUrl: './getGenders',
buildSelect: function(data) {
console.log(data);
var ele = '<select>';
$.each(data, function(index, object) {
ele+='<option value='+object.id+'>'+object.value+'</option>';
});
ele=ele+'</select>';
//console.log(ele);
return ele;
}
}
我的success函数正在控制台中执行并打印预期的输出。但在这之后,当我尝试使用搜索选项下的buildselect函数构建我的select元素时,它不会发生,因为它根本不会执行。
有人能帮忙吗?提前谢谢。您遇到的问题是ajaxSelectOptions的定义。在这个对象中,您定义了覆盖jqGrid中成功函数的成功函数。为了使代码正常工作,应该在ajaxSeletOptions中删除此事件
ajaxSelectOptions: {
method: 'GET',
dataType: 'json'
},
-- the below code is a part of colmodel option
name: 'empGender',
editable: true,
edittype:'select',
formatter:'select',
editoptions:{value:":All;M:Male;F:Female"},
stype: 'select',
search: true,
searchoptions: {
dataUrl: './getGenders',
buildSelect: function(data) {
console.log(data);
var ele = '<select>';
$.each(data, function(index, object) {
ele+='<option value='+object.id+'>'+object.value+'</option>';
});
ele=ele+'</select>';
//console.log(ele);
return ele;
}
}
使用哪个版本的jqGrid-Guriddo jqGrid,free jqGrid或jqGrid@TonyTomov谢谢你的回复,是的,使用的版本是4.6,这就是它无法渲染元素的原因。应该使用哪个最低版本来启用此功能?有人能帮我吗?提前谢谢,我有点困惑。您的意思是,由于我在ajaxselectoptions中定义了success函数,它将覆盖该特定列的搜索选项下的builtselect函数吗?因为当对服务器的请求成功时,jqgrid中没有执行成功事件。如果请求成功,则执行Load complete,如果请求不成功,则执行Load error。它不会覆盖buildselect,而是通过dataUrl覆盖jqgrid中执行的ajax成功函数。dataUrl意味着jqgrid中有ajax,从何处获取BuildSelectActual buildSelect在尝试动态构建select时在ajax调用的成功函数中定义,并且由于它被ajaxSelectOptions覆盖,因此不会执行