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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top