【发布时间】:2012-04-16 23:55:02
【问题描述】:
我正在尝试在表单编辑 jqGrid(添加表单)中使用 jQuery 多选插件。
这是我用来构建下拉列表的代码(colModel extract):
{
name: 'CaratteristicheCamera',
index: 'CaratteristicheCamera',
width: 50,
hidden: true,
edittype: 'select',
editable: true,
editrules: { edithidden: true, required: true },
editoptions: {
multiselect: true,
dataUrl: '<%# ResolveUrl("~/Service/Domain/ServiceRoom.asmx/GetRoomFeatureList") %>',
buildSelect: function (data) {
var retValue = $.parseJSON(data);
var response = $.parseJSON(retValue.d);
var s = '<select id="CaratteristicheCamera" name="CaratteristicheCamera">';
if (response && response.length) {
for (var i = 0, l = response.length; i < l; i++) {
s += '<option value="' + response[i]["Id"] + '">' +
response[i]["Descrizione"] + '</option>';
}
}
return s + "</select>";
},
dataInit: function() {
$("#CaratteristicheCamera").multiselect();
}
}
},
如你们所见,jqGrid 调用 webmethod 放在 asmx 文件中。一切似乎都正常,但我无法接收用户从下拉列表中选择的所有值。系统似乎将最后的选择发送到服务器。 你有什么建议吗?
编辑:这是 asmx 网络服务声明
[WebMethod]
public string SaveRoom(string id, string codice, string Numero, string NumeroPiano,
string Nome, string TipoCamera, string StatoCamera,
string CaratteristicheCamera, string TipoSdoppiabilita)
{}
【问题讨论】:
-
您能否更准确地指定您尝试使用的“多选”插件中的哪个。是 Eric Hynds jQuery UI MultiSelect Widget 吗?您能否更详细地描述现有问题?您写道“我无法接收用户从下拉列表中选择的所有值”。用户选择列表是否被剪切?您还写了另一个问题“系统将最后一个选择发送到服务器”。您是指上一个选择吗?这样如果您第二次打开表单,用户的第一次选择将被发送到服务器?
-
是的,我正在使用 Eric Hynds 库 (v 1.12)。发生的事情是我单击加号图标添加新实体;它出现在表单中,我可以填写其中的所有字段,并且可以在 CaratteristicheCamera 下拉列表中选择多个项目。然后我点击保存按钮,系统调用 asmx webmethod BUT 在我通过调试看到的参数中,只是最后一个选定的项目。 (我编辑了我的问题)
标签: c#-4.0 jqgrid asmx multi-select