我正在尝试在用户编辑数据时动态填充jqGrid的下拉列表.我有很多工作,但下拉调用"undefined"中有一个值.我怀疑这是因为我将数据发送到网格的方式.我正在使用ASP.NET MVC 2,我正在使用jQuery获取下拉数据,如下所示:
var destinations = $.ajax({ type:"POST",
url: '<%= Url.Action("GetDestinations", "Logger") %>',
dataType: "json",
async: false,
success: function(data) {
} }).responseText;
Run Code Online (Sandbox Code Playgroud)
现在,jqGrid想要下拉列表的值格式如下:
value: "FE:FedEx; IN:InTime; TN:TNT"
Run Code Online (Sandbox Code Playgroud)
我正在使用StringBuilder迭代我的集合并提供jqGrid想要的正确字符串:
foreach (var q in query)
{
sb.Append("ID:");
sb.Append(q.Destination);
sb.Append("; ");
}
Run Code Online (Sandbox Code Playgroud)
我从我的控制器返回这个:
return this.Json(sb.ToString());
Run Code Online (Sandbox Code Playgroud)
这都是膨胀,我获得了下拉列表所需的所有项目,但是有一个名为"undefined"的额外项目(最后一项).
我认为问题是当我在FireBug中调试时,jqGrid的结果如下所示:
value: ""ID: One;ID: Two;ID: Three;ID: Four;ID: Five;""
Run Code Online (Sandbox Code Playgroud)
看看有两套报价.这可能是因为当我说:
sb.ToString()
Run Code Online (Sandbox Code Playgroud)
它可能生成引号,然后jqGrid添加第二组.但我不是百分之百.
处理这个问题的最佳方法是什么?任何建议将不胜感激.
解:
我通过使用返回ContentResult(sb.ToString();
我想使用dataUrl方法作为Oleg提到但尚未完成工作.
我正在使用"json"从db中提取数据.如何获取特定列的所有值.
我想获得"PrimarySkill"列的所有值/全值,而不管分页.
var texts = $("#listTableSupply").jqGrid('getCol', 'PrimarySkill');
Run Code Online (Sandbox Code Playgroud)
这段代码只给我一个"PrimarySkill"的子集,即给我当前页面中的值.
我想要全套价值.

我试图用jqgrid形式实现bootstrap select2,但似乎可以正确.
在jqgrid声明的colmodel我有:
{name: 'staff', index: 'staff', width: 31, formoptions: {elmprefix: '(*) '}, editable: true, editrules: {required: true}, edittype: 'select',
editoptions: {value: staff,
dataInit: function(element) {
$(element).width(260).select2();
}
}
},
Run Code Online (Sandbox Code Playgroud)
选项在那里,引导类插入元素,
<select id="staff" class="select2-offscreen FormElement" role="select"
Run Code Online (Sandbox Code Playgroud)
但我得到的只是选择的空白区域.
见下图.

有人能告诉我为什么会这样,或者告诉我我做错了什么?
谢谢.