CallBack en Asp.Net


CallBack es una tecnologia que nos permite hacer peticiones al servidor sin necesidad de refrescar la pagina entera sino solo el control que sea necesario refrescar.
A continuacion explicare un Ejemplo :

Lo primero que tenemos que hacer es importar los nombres de espacion
System.IO y System.Text

En el Page_Load pondremos las siguientes Instrucciones

Dim sb As New StringBuilder
sb.Append(" function llamarServidor(arg) { " & vbCrLf)
sb.Append(ClientScript.GetCallbackEventReference(Me, "arg", "Obtienedatos", "null", False))
sb.Append(";" & vbCrLf & "}" & vbCrLf)
Page.ClientScript.RegisterClientScriptBlock(GetType(String), "llamarServidor", sb.ToString, True)
cmbAdministradores.Attributes.Add("onchange", "llamarServidor(document.getElementById('" & cmbAdministradores.ClientID & "').value);return false;")

Luego implementamos la interfaz ICallbackEventHandler

Seguido de esto declaramos una variable string donde se almacenara el html del control la llamaremos vp_objResCallBack

Private vp_objResCallBack As String

En la Funcion GetCallbackResult pondremos

return vp_objResCallBack

y en el metodo RaiseCallbackEvent

Pondremos la funcion donde cargamos el control a usar y luego de esto

Dim vl_sWrite As New StringWriter()
Dim vl_sHtml As New HtmlTextWriter(vl_sWrite)
Me.tblResultado.RenderControl(vl_sHtml)
vl_sHtml.Flush()
vp_objResCallBack = vl_sWrite.ToString()

Con esto tendremos todo lo del servidor.

Ahora en el Html pondremos la funcion Javascript



function Obtienedatos(arg)
{
var info = document.getElementById('datosCliente');
info.innerHTML = arg;
}

Con todo esto tendremos listo nuestro Callback. Espero les Sirva.



-------------------------------
cmbAdministradores es un DropDown
tblResultado : GridView
datosCliente : Div que contiene el control

NightWish