我想将xml文件中的大约150个元素添加到jqGrid单元格内的选择控件。我想以两种方式做到这一点:
1.使用editoptions值:
{ name: 'language', width: 100, sortable: false, editable: true, edittype: 'select', editoptions: { value: languageElem()} }
使用从该方法收到的数据:
function languageElem() {
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'jqService.asmx/GetLanguages',
data: {},
dataType: "json",
success: function (data) {
alert("success");
}
});}
但是我在从ajax部分转发数据时遇到了麻烦。
2.只需访问jqGrid单元格内的选择控件,并在按下编辑按钮时手动添加选项。
这里的问题是我不知道如何访问控件本身。
我在这里使用的代码是:
function startEdit() {
if (selRow > -1) {
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'jqService.asmx/GetLanguages',
data: {},
dataType: "json",
success: function (data) {
var cell = jQuery("#MainContent_list").getCell(selRow, "language");
cell.options.length = 0;
for (var i=0;i<data.d.length;i++)
{
}
}
});
jQuery("#MainContent_list").jqGrid('restoreRow', selRow);
jQuery("#MainContent_list").jqGrid('editRow', selRow);
}
我的问题是:
1.关于第一个想法,我该怎么做才能修复方法,以便控件能够获得所需的值?
2.关于第二个想法,我怎么能访问行内的控件?
谢谢,Catalin
答案 0 :(得分:0)
而不是value
属性(editoptions: { value: languageElem()}
),您应该使用dataUrl
和buildSelect
(请参阅the documentation)。因为很难从ASMX HTML片段<select><option>...</option></select>
返回,所以您可以提供序列化为JSON的列表,并使用buildSelect
将服务器响应转换为HTML片段。在the answer和this one中,您可以找到其他信息。如果您要搜索dataUrl
和buildSelect
,可以找到更多可以使用的信息和代码示例。