我试图通过调用ajax webmethod(asp.net)来编辑jqgrid表单中的选择元素。jqgrid表单编辑editoptions选择ajax添加参数
如果我调用一个没有参数的方法,Everythings很好用。
这是代码的摘录:
ajaxSelectOptions: { type: "POST", contentType: 'application/json; charset=utf-8', },
colNames: ['City', 'State'],
colModel: [
{
name: 'City',
index: 'City',
align: "center",
width: 80,
searchoptions: { sopt: ['eq', 'ne', 'cn']} ,
edittype: 'select',
editable: true,
editrules: { required: true },
editoptions: {
dataUrl: '<%# ResolveUrl("~/Service/Domain/ServiceGeographic.asmx/GetCityByState") %>',
buildSelect: function (data) {
var retValue = $.parseJSON(data);
var response = $.parseJSON(retValue.d);
var s = '<select id="customer_City" name="customer_City">';
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>";
}
}
},
...
我在哪里可以设置发送到GetCityByState的webmethod的参数,如果我尝试调用一个WebMethod期待一个字符串参数它不工作?
编辑:我没有强调我使用POST来调用webmethod。即使我试图为Oleg suggested on this link,它不工作:(
THX奥列格,我应该通过计算器发送UA礼物,最后几天的答案;)无论如何,首先你应该使用:数据后(对于谁可以从这个优势用户话题)。错误改变了,它变成了“无效的json基元”。我解决这个[这次静态]方式的数据:“{'selectedValue':'value'}” – frabiacca 2012-02-11 13:56:08
@frabiacca:我仔细读了你写的关于错误的内容。我认为我的建议应该更正为使用'JSON.stringify()'。如果你在'ajaxSelectOptions'里面使用'type:“POST”',那么你必须使用'data:JSON.stringify({selectedValue:'value'})''。它不舒服,因为你不能使用功能。如果你要在webmethod中使用和使用'UseHttpGet = true'选项,你将能够以'data:{selectedValue:function(){return JSON.stringify($(“#list”) .jqGrid('getGridParam','selrow')); }' – Oleg 2012-02-11 14:13:21
@Oleg我可以直接绑定''string to column without ajax call。 – 2016-12-14 04:11:56