我想在单击该行时填充jqGrid单元格下拉列表。我点击了该行,但下拉列表没有填充。
我为编辑或点击行填充下拉列表而编写的代码是:
colModel: [
{ name: 'Emp_code', width: 50, sortable: false, align: "center" },
{ name: 'Emp_name', width: 200, sortable: false },
//{ name: 'totalhours', width: 100, sortable: false, align: 'center', editable: true, edittype: "select", editoptions: { value: "1:1;2:2;3:3;4:4;5:5;6:6;7:7;8:8;9:9"} }
{name: 'totalhours', index: 'totalhours', width: 100, sortable: false, align: 'center', editable: true, edittype: "select",
editoptions:
{
dataInit: function(elem) {
$(elem).empty()
.append($('<option></option>').val("1").html("Apples"))
.append($('<option></option>').val("2").html("Oranges"));
}
}
}
],
我想在行点击中填充totalhours列,其中将填充苹果和橙子,但不知何故,我得到空白的下拉列表。在行上单击下拉列表,但未填充。
答案 0 :(得分:0)
如果您需要从服务器获取选项的选项,则应使用editoptions dataUrl
和buildSelect
。如果服务器返回JSON而不是像
<select><option value="1">Apples</option><option value="2">Oranges</option></select>
可以使用buildSelect
将服务器响应转换为格式。如果srever返回JSON格式的字符串,则buildSelect
事件处理程序的实现可以将JSON字符串转换为该对象,然后从该对象构造字符串<select>...</select>
。
您可以找到相应的代码示例,例如here。
答案 1 :(得分:0)
根据你的建议,我做了这个..
colModel: [
{ name: 'Emp_code', width: 50, sortable: false, align: "center" },
{ name: 'Emp_name', width: 200, sortable: false },
//{ name: 'totalhours', width: 100, sortable: false, align: 'center', editable: true, edittype: "select", editoptions: { value: "1:1;2:2;3:3;4:4;5:5;6:6;7:7;8:8;9:9"} }
{name: 'totalhours', width: 100, sortable: false, align: 'center', editable: true, edittype: "select",
editoptions: { dataUrl: '../Services/ServiceTest.asmx/GetListHours',
buildSelect: function(data) {
alert('hello i am here ');
var response = jQuery.parseJSON(data.responseText);
var s = '<select>';
if (response && response.length) {
for (var i = 0, l = response.length; i < l; i++) {
var ri = response[i];
s += '<option value="' + ri + '">' + ri + '</option>';
}
}
return s + "</select>";
}
}
}
],
和我要求的相应的webserivce我是:
public String GetListHours()
{
List<int> list = new List<int> { };
for (int i = 0; i < 10; i++)
{
list.Add(i);
}
return JsonConvert.SerializeObject(list);
}
但是当我点击该行时,下拉列表显示为空白...是否有任何应该通过的事件?当我点击一行时应该被解雇?填充下拉列表?以上是我试图根据你的建议实现的代码。但似乎它甚至没有调用dataurl来填充因为函数警报根本没有触发