0
我从控制器返回一个字符串jqGrid,但不能填充下拉列表。在查看从MVC控制器填充编辑表单中的jqGrid选择列表
电网代码:
{
name: 'FundCode', index: 'FundCode', editable: true, edittype: "select",
editoptions: {
dataUrl: '@Url.Action("PopulateDdl", "FundCode")'
},
buildSelect: function (response) {
var data = typeof response === "string" ? $.parseJSON(response.responseText) : response, s = "<select>";
s += '<option value="0">--Select Fund--</option>';
$.each(data, function() {
s += '<option value="' + data + '">' + data + '</option>';
})
}
}
控制器方法返回的字符串:
[HttpGet]
public JsonResult PopulateDdl()
{
var fundCodes = repo.GetFundCodes();
var codeList = new List<string>();
foreach (var t in fundCodes)
{
codeList.Add(t.FundCode.ToString());
}
return Json(codeList, JsonRequestBehavior.AllowGet);
}
这将返回一个列表格,但是我得到一个错误,“语法错误,无法识别的表达式: “1”,“2”,“3”等]
我也尝试返回作为MVC SelectListItem到相同的结果
更新 - 我添加了结束选择。它没有解决这个问题。然后我注意到'buildSelect'与dataUrl不在同一个组中。我移动它,错误改变了。现在的错误是“意外令牌U”它说,这是上线1
新视图代码:
{
name: 'FundCode', index: 'FundCode', editable: true, edittype: "select",
editoptions: {
dataUrl: '@Url.Action("PopulateDdl", "FundCode")',
buildSelect: function (response) {
var data = typeof response === "string" ? $.parseJSON(response.responseText) : response, s = "<select>";
s += '<option value="0">--Select Fund--</option>';
$.each(data, function() {
s += '<option value="' + data + '">' + data + '</option>';
})
s += "</select>";
}
}
},
你知道一个教程,说明如何做服务器端的东西,即所以它得到的准备清单客户端以及定义的json? – BattlFrog
目前得到客户端的字符串看起来像这样:[“8:达拉斯;”,“10:丹佛;”,“34:密歇根州;”,....] – BattlFrog
@BattlFrog我想一些例子[tutorial1] (http://www.mkyong.com/tutorials/java-json-tutorials/),[tutorial2](http://www.tutorialspoint.com/json/json_java_example.htm),[tutorial3](http:// iviewsource.com/codingtutorials/getting-started-with-javascript-object-notation-json-for-absolute-beginners/)会帮助你,如果有什么不清楚的地方,随时问我会很高兴帮助 :) – KAD