我在运行以下脚本时遇到问题。我正在尝试使用jquery在按钮单击上调用服务器端方法。但它不起作用。我既没有成功,也没有失败警告检查脚本。请帮忙。
$(document).ready(function() {
var xml=""; // Scope limit covered but not working
$('#<%=btnSave.ClientID %>').click(function(event) {
xml = "<schedule>";
$("#selectedcolumns").find("tr").each(function() {
xml += "<data>";
xml += $(this).find("td").eq(1).html() + "\n";
xml += "</data>";
});
xml += "</schedule>";
//PAgeMethod
PageMethods.GetCustomer(
xml,
function(result) {
alert('success:' + result);
},
function(result) {
alert('error:' + result.get_message());
});
alert(xml);
})
});
在CodeBehind中:
[WebMethod]
private void GetCustomer(string NoOfRecords) //just need to reach here.
{
xmlfile(NoOfRecords);
}
答案 0 :(得分:1)
这是xml值的范围问题(您在回调范围内声明它 - 因此它不会在该函数旁边显示。
$(document).ready(function() {
var xml = "";
$('#<%=btnSave.ClientID %>').click(function(event) {
xml = "<schedule>";
$("#selectedcolumns").find("tr").each(function() {
xml += "<data>";
xml += $(this).find("td").eq(1).html() + "\n";
xml += "</data>";
});
xml += "</schedule>";
//This method is defined in the codebehind
PageMethods.GetCustomer(
xml,
function(result) {
alert('success:' + result);
},
function(result) {
alert('error:' + result.get_message());
});
alert(xml);
});
});
答案 1 :(得分:0)
WebMethod
需要声明为静态。 Here is a good guide涵盖了从jQuery调用服务器端方法。