我正在使用twitter bootstrap typeahead和Guriddo jqgrid版本5.2.1表单编辑。我更喜欢使用键值对而不是值。下面的所有代码都可以使用,唯一缺少的是当编辑表单为现有记录打开时,它显示密钥(数字)而不是值(公司名称)。网格列都是动态创建的。我认为如果在editoptions中,如果我可以指定一个值:公司名称,它可能是一个很好的黑客,但这不起作用。
label: svf.fieldLabel,
name: svf.tf[0].nativename,
width: 150,
editable: true,
edittype: "text",
formatter: 'select',
formatoptions:
{
value: getEditOptionsValue(svf.relatedItemId)
},
editoptions: {
dataInit: function (element) {
var data = JSON.parse(getSelects(svf.relatedItemId));
$(element).attr("autocomplete", "off").typeahead({
appendTo: "body",
dataType: "json",
displayText: function (item) { return item.name; },
source: function (query, process) {
return process(data);
}
});
} //end datainit
}//end edit options
答案 0 :(得分:1)
为了解决您的问题,您需要使用自定义的非格式化功能。 预定义的非格式化函数返回键而不是值。 您可以在documentation here
中看到更多内容您可以使用以下代码:
label: svf.fieldLabel,
name: svf.tf[0].nativename,
width: 150,
editable: true,
edittype: "text",
formatter: 'select',
unformat : function(value, options, cellObject) {
return value;
},