对于一般的AJAX和javascript,我很垃圾。
我有一个WebMethod:
[System.Web.Services.WebMethod] 公共静态字符串DumpClients() {}
我在js文件中有这段代码:
mainScreen.DumpClients = function() {
$('#runclientdumpbtn').attr("disabled", "true");
mainScreen.clientDiv.innerHTML = "";
$("#loadingimageclientdump").show();
PageMethods.DumpClients(mainScreen.DumpClientsCallback, mainScreen.DumpClientsFailed);
}
mainScreen.DumpClientsCallback = function(result) {
if (result) {
$("#loadingimageclientdump").hide();
mainScreen.clientDiv.innerHTML = result;
$('#runclientdumpbtn').removeAttr("disabled");
}
};
mainScreen.DumpClientsFailed = function(error, userContext, methodName) {
if (error) {
// TODO: add your error handling
$("#loadingimageclientdump").hide();
mainScreen.clientDiv.innerHTML = error.get_message();
$('#runclientdumpbtn').removeAttr("disabled");
}
};
Sys.Application.add_load(applicationLoadHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandler);
这很好,(我承认我根本不完全理解这一点),直到我需要从页面访问下拉列表。因为它是一个静态方法,所以我不能直接得到它,所以我想我可以通过web方法传递这个值。
小问题是我不知道怎么做。我一直在谷歌搜索它,但我没有得到任何快速。我正在通过一本JQuery书籍并了解更多基础知识,但此时此方法已超出我的范围。
我感谢任何帮助和建议,对不起,我可能会问一些愚蠢的问题。
答案 0 :(得分:1)
所以我认为我的方法完全错误,并寻找一种更好的方法来调用该方法并找到了这个解决方案:
$("#runclientdumpbtn").click(function() {
var selectedreporttype = $("#<%= dropdownpageID %>").val();
$.ajax({
type: "POST",
url: "default.aspx/ExtractContacts",
data: "{outputtype:'" + selectedreporttype + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnContactSuccess,
failure: OnContactFailure,
error: OnContactFailure
});
startContact();
});
[WebMethod()]
public static string ExtractContacts(string outputtype)
{
}
希望这有助于其他人。