26/03/2011 Development / java script

Eu só tinha conhecimento do AjaxPro, uma DLL que registrada na página, acessa os métodos behind Code via Javascript.

Estudando em casa, acabei descobrindo que o script manager do Visual Studio, também oferece essa funcionalidade.

Vamos lá!

Primeiro insera o controle scriptManager na página

    <form id="form1" runat="server">
        <asp:ScriptManager runat="server" ID="maganger" EnablePageMethods="true"></asp:ScriptManager>
    </form>
    <button onclick="getPeople()">chamarMetodo</button>

Agora o javascript que fará o acesso aos métodos

        function getPeople() {
            PageMethods.getPeople("", callbackSucess, callbackError);
        }

        function callbackSucess(retorno) {
            alert(retorno[0].Nome);
        };

        function callbackError(retorno) {};

Agora vamos fazer o método n behind Code

    [WebMethod]
    [ScriptMethod(ResponseFormat= ResponseFormat.Json)]
    public static IList<Pessoa> getPeople(string txt)
    {
        IList<Pessoa> pessoa = new List<Pessoa>();
        for (int x = 0; x <= 5; x++)
        {
            Pessoa p = new Pessoa();
            p.Idade = "Idade " + x;
            p.Nome = "Pessoa " + x;
            pessoa.Add(p);
        }

        return pessoa;
    }


    public class Pessoa {
        public string Nome { get; set; }
        public string Idade { get; set; }
    }

É necessário registrar os seguintes namespaces:

using System.Web.Services;
using System.Web.Script.Services;
using System.Collections;

É isso, espero que seja útil!