Buscar

miércoles, 14 de julio de 2010

Ajax con Asp.Net

A Quien no le carga hacer postback?? Todos dependemos de esto para realizar tareas como conectarse a la base de datos traer ciertos datos para llenar los combos etc....
Pero es posible ya no hacer más este molesto postback.
¿Cómo? Con Ajax una DLL excelente que a diferencia de los UpdatePanel es más limpia a la hora de usarse.

Aquí les dejó un código de como utilizar esta DLL:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Página sin título</title>
<script language="javascript">
function fncSuma_CallBack(response)
{
var ds = response.value;
if(ds != null)
{
document.getElementById("<%=TextBox3.clientID %>").value = ds;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
Valor 1: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
Valor 2: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<b>Total: </b><asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" Text="Sumar con Ajax" />
</div>
</form>
</body>
</html>


Y El código ASP.Net es el Siguiente:

'Metodo Ajax en Este Caso es Sumar
<Ajax.AjaxMethod()> _
Function fncSumar(ByVal vSuma1 As Integer, ByVal vSuma2 As Integer) As Integer
Return vSuma1 + vSuma2
End Function


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

' siempre eliminar el cache
Response.AddHeader("Cache-Control", "no-cache")
Response.Clear()

' _default debe cambiarse por el nombre puesto por ustedes para la página
Ajax.Utility.RegisterTypeForAjax(GetType(_Default))


Button1.OnClientClick = "javascript:_Default.fncSumar(document.getElementById('" & TextBox1.ClientID & "').value, document.getElementById('" & TextBox2.ClientID & "').value, fncSuma_CallBack); return false;"


End Sub

Que les parece este Código. Espero les sirva.

Regards.

No hay comentarios:

Publicar un comentario