我想创建一个selectbox,它使用json数据动态加载选择选项。
"合作id"是一个选择框,我只想从其他数据库表中获取数据,所以我把url放在"dataURL"中,并使用"buildselect"来获取json数据。当我测试时,选择框中没有任何选项。我想我遗漏了什么或者我的代码中有什么错误。
下面是我的代码。
jQuery(function($) {
jQuery(grid_selector).jqGrid({
url: '/jqGrid/merchantEstablishmentList',
datatype: 'json',
height: 'auto', autowidth: true,
colNames:
[
'Establishment ID',
'Establish Name',
'Corporation ID'
],
colModel:
[
{name:'ESTABLISHMENT_ID',index:'ESTABLISHMENT_ID', editable:true, sortable:false,search: false},
{name:'ESTABLISHMENT_NAME',index:'ESTABLISHMENT_NAME', editable:true, sortable:false,search: false},
{name:'CORPORATE_ID',index:'CORPORATE_ID', sortable:false,edittype:"select", editable:true, search: false, editoptions: {
dataUrl : '/jqGrid/getMerchantsID/?m_type=corp.html?type=json'
,buildSelect:function (data) {
value = jQuery.parseJSON(data).combo;
var result = '<select>';
for(var idx=0; idx < value.length; idx++) {
result += '<option value="' + value[idx] + '">' + value[idx] + '</option>';
}
result += '</select>';
return result;
}
}}
如果你在问题的文本中添加/jqGrid/getMerchantsID/?m_type=corp.html?type=json
的回复,那就太好了。
您使用哪个版本的jqGrid?如果您使用当前版本的jqGrid,并且服务器返回的数据格式正确,则应该使用data.combo
而不是jQuery.parseJSON(data).combo
。此外,您应该在value
之前添加var
。buildSelect
的当前代码隐式声明全局value
变量。