Implementacion de CallBacks asp.net 2.0

11/12/2005 - 19:41 por carlos | Informe spam
Buenas a todos, estoy intentando hacer un ejemplo de Callbacks
,http://www.willydev.net/descargas/CallBackASP2.pdf

para ello he implementado el interfaz ICallbackEventHandler
Este me obliga a codificar un sub y no una funcion como indica en el ejemplo?'
A la hora de intentar acceder al miembro del formulatio
GetCallbackEventReference
No me aparece,alguien sabe por que puede ser?
Otra pregunta Atlas es lo mismo ???
Saludos
Gracias.
 

Leer las respuestas

#1 Eduardo Alvarado Meza
12/12/2005 - 12:55 | Informe spam
Eso estaba horrible!!!!!!! Sude intentando hacerlo correr... espero que por
lo menos te sirva y me le pongas el check de buena a mi respuesta.
Mira el codido es asi, en default.asp.vb va esto:

Imports System.Xml
Partial Class _Default
Inherits System.Web.UI.Page
Implements ICallbackEventHandler

Private sbResultado As New StringBuilder(String.Empty)

Public Function GetCallbackResult() As String Implements
System.Web.UI.ICallbackEventHandler.GetCallbackResult
Return sbResultado.ToString
End Function

Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements
System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent

If eventArgument.Length > 0 Then
Dim xmlDoc As New XmlDataDocument
xmlDoc.Load(Server.MapPath("Estructura.xml"))
Dim root As XmlNode = xmlDoc.DocumentElement
Dim nodeList As XmlNodeList
Dim nodeListChild As XmlNodeList
nodeList = root.SelectNodes("descendant::Departamento[nombre='"
& eventArgument & "']")
For Each nodo As XmlNode In nodeList
nodeListChild = nodo.SelectNodes("Provincias/nombre")
For Each nodoHijo As XmlNode In nodeListChild
sbResultado.Append(nodoHijo.InnerText & "#")
Next
Next
End If

End Sub

Private Sub form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles form1.Load
If Not Page.IsPostBack Then
CargaDepartamentos()
End If
Dim strScript As String
Dim strArgumento As String =
"document.all('ddlDepartamentos').options[document.all('ddlDepartamentos').selectedIndex].value"
Dim strContexto As String = "null"
strScript = Me.ClientScript.GetCallbackEventReference(Me,
strArgumento, "ObtenerProvincias", strContexto, "ErrorServidor", False) & _
";return false;"
ddlDepartamentos.Attributes.Add("onchange", strScript)
End Sub

Private Sub CargaDepartamentos()
ddlDepartamentos.Items.Add("Seleccionar")
Dim xmlDoc As New XmlDataDocument
xmlDoc.Load(Server.MapPath("Estructura.xml"))
Dim root As XmlNode
Dim nodeList As XmlNodeList
root = xmlDoc.DocumentElement
nodeList = root.SelectNodes("descendant::Departamento/nombre")
For Each nodo As XmlNode In nodeList
ddlDepartamentos.Items.Add(nodo.InnerText)
Next
End Sub
End Class

'Notastes que sbresultado esta afuera?? y lo retorna la function
En Default.aspx va esto:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script language="javascript" type = "text/javascript" >
function ObtenerProvincias(oDatos)
{
var Prov = new Array();
var cboProv = document.all('ddlProvincias');

while (cboProv.length)
{
cboProv.remove(cboProv.options[0]);
}


Prov = oDatos.split('#');
for (var i = 0; i< Prov.length ; i++)
{
if (Prov[i].length > 0)
{
cboProv.options[i] = new Option(Prov[i], Prov[i]);
}
}
}
function ErrorServidor(oMensaje, oContexto)
{
alert(oMensaje);
}
</script>

</head>
<body>


<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlDepartamentos" runat="server" Width="264px">
</asp:DropDownList><br />
<br />
<br />
<br />
<asp:DropDownList ID="ddlProvincias" runat="server" Width="261px">
</asp:DropDownList></div>
</form>
</body>
</html>


Suerte. en tu proyecto!!!!

Preguntas similares