我在我的应用程序中使用jqGrid v 4.0来显示具有内联编辑功能的禁忌数据。 Grid中的一列是“Select”类型。我已使用以下服务器端代码填充此选项:
//get all Departments
HRDept = $.ajax({
url: '../../PerformanceReview/GetHRDepartments/',
async: false,
success: function(data, result) {
if (!result)
alert('Failure to retrieve the HR Departments.');
}
}).responseText;
我已使用以下sysntax填充Grid列:
name: 'HRDepartment', index: 'Department', align: 'left', editable: true, edittype: 'select', editoptions: {value: HRDept}
但是点击编辑按钮(内联),它会在单元格顶部显示下拉列表,但该值不等于当前单元格值。它始终是下拉的第一个值。我在使用Dropdown文本加载Grid时将我填充的文本进行了比较,并且它们是匹配的。
有人可以帮我设置与单元格值类似的下拉值。
答案 0 :(得分:0)
您的编辑选项看起来不对,应该是“value:text;”并且该值应与您的数据结果匹配。
{ ... editoptions: {value: "HRDept:HR Department;" }}
你可以查看Row Edition的演示 - > jqGrid Demo site.的输入类型,包括下拉列表编辑单元格。
答案 1 :(得分:0)
如果您从服务器获取选择值,则应使用editoptions的dataUrl
选项而不是value
。然后jqGrid将在编辑开始时发出Ajax请求,并用服务器响应填充select元素。重要的是要了解服务器响应应采用另一种形式:
<select>
<option value='101 - Equity Partners'>101 - Equity Partners</option>
…
</select>
如果您已经在服务器上提供了另一种格式的信息并且您无法更改服务器代码,则可以定义额外的buildSelect
函数,该函数将服务器响应作为参数获取并应返回上述格式的数据('...')。有关代码示例,请参阅the answer的更新部分。