这是该线程的延续。我正在使用free-jqGrid 4.9.0并进行内联编辑。
{ name: 'ContactName', editable: true, width: 100, sortable: false, frozen: true, formatter: 'select', edittype: 'select',
editoptions: {
dataUrl: '/InvestorList/GetContactList',
postData: function (rowid, value, cmName) {
return { projectId: rowid };
}
}
在我的 ASP .NET MVC控制器中,我有以下方法:
public JsonResult GetContactList(string projectId)
{
var contacts = new Dictionary<string, string>();//context.GetContactList(projectId);
contacts.Add("123","IAM1");
contacts.Add("1234", "IAM2");
contacts.Add("12345", "IAM3");
return Json(contacts, JsonRequestBehavior.AllowGet);
}
使用 IE 开发人员工具,这是响应:
{"123":"IAM1","1234":"IAM2","12345":"IAM3"}
但我收到以下错误,
http://localhost:51176/Scripts/jquery-2.1.3.min.js 0x800a139e中的第 2 行第 12461 列未处理的异常 - JavaScript 运行时错误:语法错误,无法识别的表达式:{“123”:“IAM1”, 1234":"IAM2","12345":"IAM3"}
我想知道dataUrl
期望什么样的格式,因为我对其他列使用完全相同的格式,例如editoptions: { value: TeaserStatusList }
在这种情况下TeaserStatusList
,格式与{"123":"IAM1","1234":"IAM2","12345":"IAM3"}
谢谢
更新:
{ name: 'ContactId', editable: true, width: 100, sortable: false, edittype: 'select', editoptions: { dataUrl: '/InvestorList/GetContactList',
postData: function (rowid, value, cmName) {
var accid = $(gridId).jqGrid("getCell", rowid, "AccountId");
return { accountId: accid };
},
buildSelect: function (data) {
var s = "<select>";
data = JSON.parse(data);
$.each(data, function (k, v) {
s += '<option value="' + k + '">' + v + '</option>';
});
return s + "</select>";
}
}