Dessa vez vamos considerar uma chamada com parametros. Lembrando que estou usando o framework mootools para ajudar com JSON e na criação do objeto ajax.

O javascript ficará assim:

function ajax(){
            var pagePath = window.location.pathname; 
            var campo1   = $("campo1").value;
            var campo2   = $("campo2").value;

            var parametros = { 'a':campo1,'b':campo2};

            var opcoes =   
            {   
                 "method":"post",   
                 "data": Json.toString(parametros),   
                 "urlEncoded": "false",
                 "headers": {
                                "Content-Type": "application/json; charset=utf-8"
                            }, 
                 "onComplete": completou   
            };   
            
            var ajaxObj = new Ajax(pagePath + "/testeAjax", opcoes).request(); 
}

function completou(result){
    var obj = Json.evaluate(result);
    alert(obj.d); // .net framework 3.5
    alert(obj);  // qualquer outro .net framework
}
    <form id="form1" runat="server">
    <div>
        <input type="text" id="campo1" />
        <input type="text" id="campo2" />
        <input type="button" onclick="javascript:ajax();"
    </div>
    </form>

Agora no code-behind

        [WebMethod()]
        public static int testeAjax(int a, int b)
        {
            return a+b;
        }
Anúncios

Post migrado e atualizado em:

http://programatik.soucafecomleite.com.br/imask

Estou usando o mootools para facilitar a criação do objeto request xml.


function ajax(){
            var pagePath = window.location.pathname; 
            var opcoes =   
            {   
                 "method":"post",   
                 "data": "{}",   
                 "urlEncoded": "false",
                 "headers": {
                                "Content-Type": "application/json; charset=utf-8"
                            }, 
                 "onComplete": completou   
            };   
            var ajaxObj = new Ajax(pagePath + "/testeAjax", opcoes).request(); 
}

function completou(result){
    var obj = Json.evaluate(result);
    alert(obj.d); // se tiver usando .net framework >= 3.5
    alert(obj);  // qualquer outro .net framework 
}

O que o pagepath faz?
Apenas pega o conteudo da url e concatena com o nome do pagemethod que foi implementado no code-behind.
Ex.:

http://localhost/default.aspx = default.aspx/testeAjax

No code behind:

        [WebMethod()]
        public static string  testeAjax()
        {
            return "teste";
        }

Post migrado e atualizado em:

http://programatik.soucafecomleite.com.br/pegar-parametro-url-javascript

Todo mundo sabe que o .NET bagunça o ID, então você precisa conseguir obter os elementos HTML através do ID parcial. Podemos facilmente resolver com esse código javascript:

//TipoControle é o elmento HTML que voce quer procurar. 
//Ex.: TD, INPUT, DIV
//IdParcial é o ID que voce colocou no seu .ASPX
        function getIdReal(TipoControle,idParcial){
            var re= new RegExp(idParcial,'g');
            var elems = document.getElementsByTagName(TipoControle), i=0, el;
            while(el=elems[i++]){
                if(el.id.match(re)){
                 return el.id;
                }
            }
        }



O pessoal da Giva Labs fez uma combo box hierarquica com ajuda do JQuery, quem quiser conferir, tem o link do download e um demo nessa página: http://www.givainc.com/labs/mcdropdown. Vale a pena

Mootools é um framework de código aberto em JavaScript, utilizado para criação de aplicações Web baseadas no paradigma Ajax. As principais características do Mootools são o fato dele ser extremamente leve, modular e orientado a objetos. Outra característica marcante do Mootools é sua qualidade na produção de animações.

Mootools: Página oficial