C# Variáveis de passagem em System.Web.Services.WebMethod
Pergunta
Sou bastante lixo quando se trata de Ajax e JavaScript sobre General.
Eu tenho um webMethod:
System.Web.Services.WebMethod] Public Static String dumpClients () {}
Eu tenho este código em um arquivo 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);
Isso funcionou bem (admito que não entendo completamente isso), até que precisei acessar uma lista suspensa da página. Como é um método estático, não posso obtê -lo diretamente, então pensei em passar o valor de volta pelo webMethod.
O pequeno problema é que não tenho idéia de como. Eu tenho pesquisado no Google, mas não estou chegando rapidamente. Estou trabalhando em um livro jQuery e entendendo mais do básico, mas isso está muito além de mim neste momento.
Agradeço toda e qualquer ajuda e conselho, e desculpe -me provavelmente fazendo uma pergunta estúpida.
Solução
Então eu decidi que estava indo completamente do jeito errado e procurei uma maneira melhor de chamar o método e encontrei esta solução:
$("#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)
{
}
Espero que isso ajude outra pessoa.