segunda-feira, 21 de dezembro de 2009

Chamando função do lado servidor com Javascript

Ja vi em muitos lugares essa dúvida, e vi muitas soluções complicadas, explicações gigantes para resolver esse problema.
Aqui mostro de uma forma mais direta como resolver esse problema de chamar uma função C# por exemplo com Javascript.
Primeiro no código fonte de sua página adicione um método estático com o atributo WebMethod. Seu código ficará assim:

public partial class _Default : System.Web.UI.Page
{
     protected void Page_Load(object sender, EventArgs e)
     {

     }

     [System.Web.Services.WebMethod]
     public static void MeuMetodo()
     {
     }
}

Agora no seu html adicione um ScriptManager colocando EnablePageMethods="true" e logo abaixo dele adicione sua função javascript, ficando assim:

<form if="form1" runat="server">
    <asp:scriptmanager EnablePageMethods="true" runat="server"></asp:scriptmanager>
    <script type="text/javascript">
          function Metodo() {
                PageMethods.MeuMetodo();
          }
    </script>
    <button onclick="javascript:Metodo();">Clique</button>
</form>

Esse pequeno artigo mostra de maneira simples como chamar uma função que está do lado do servidor por Javascript.

Até a próxima.

5 comentários:

  1. Murilo,
    Muito legal hein, bem direto!

    Parabéns
    Sérgio

    ResponderExcluir
  2. Você salvou minha tarde Murilo, estava tentando isso a dois dias, mais colocando o código JS no local errado. Muito obrigado!!!
    Rodrigo Coladela

    ResponderExcluir
  3. pow cara, ate que fim um código que me ajudou parabens e obrigado

    ResponderExcluir