我正在使用jqGrid JS v5.3.2。 我在服务器上有这样的键/值对列表
key|value
23|abc
12|bdc
100|fghe
现在,我使用两列来显示/编辑此列表,如下所示: ...
{
label: 'thelist',
name: 'key',
hidden: true,
editable: true,
editrules: {
edithidden: true
},
edittype: 'select',
editoptions: {
dataUrl: function () {
return "getlisthtmlfromserverURL";
}
}
},
{
label: 'thelist',
name: 'value',
width: 150
},
...
我尝试过格式化程序:在第一列上方使用“选择”以消除第二列的需要(/具有两个jqgrid列,用于一个数据字段),但是它不显示选择的文本/值。我的猜测是jqgrid加载(远程)在编辑期间选择内容,因此没有任何显示。问题是如何使用colModel中的一列来显示和编辑以上列表中的数据字段? TIA
答案 0 :(得分:0)
我想您还没有读the docs here,所以您应该知道select类型的格式化程序不支持dataUrl选项-它仅支持字符串和对象值-即,值必须在它们出现之前进行预定义网格。
为了拥有一个字段,您应该首先获取键/值,然后再构建网格并将其作为格式选项中的值参数传递。
{
name:'key',
formatter:'select',
formatoptions : {value:"23:abc;12:bdc;100:fghe"},
edittype: 'select',
editoptions: {
value:"23:abc;12:bdc;100:fghe"
}
}
更新
如果使用自定义选项来预加载选择,则并不是那么困难。你应该做
$.ajax({
url : "url_to get_select(s)",
success : functon(....) {
// build your select string here
// call the jqGrid with that string.
$(...).jqGrid({...});
}
})