Foros

 
ForumForumForos DNNForos DNNDesarrolloDesarrolloRegisterPostBackEventHandlerRegisterPostBackEventHandler
Anterior Anterior
 
Siguiente Siguiente
Nuevo Mensaje
 14/06/2008 6:34
 
 Modificado por jmaldonadom  en 14/06/2008 6:41:48

Hola compañeros, estoy trabajando intensamente en lo que va a ser mi primer módulo "comercial" para DNN, se trata de una integración de Google Maps con el módulo Property Agents , en el que he logrado integrar toda la interfaz de búsqueda de Ventrian, aprovechando la configuración de un determinado módulo PA (custom fields, search config...), para construir un servidor KML que posiciona los inmuebles en el mapa. Lo tengo bastante avanzado y espero poder publicar pronto la primera beta...

El caso es que estoy intentando lanzar un procedimiento en el lado del servidor cuando se ejecute una determinada función javascript en el cliente, para ello estoy usando (según la documentación del Client API de DotNetNuke) el método RegisterPostBackEventHandler, pero cuando hago la llamada a dnn. callPostBack desde el javascript siempre me devuelve un error pues la variable __dnn_postBack es "undefined" o sea, que no se registra en las variables del cliente. En los foros oficiales públicos apenas hay información sobre éste método, y un error idéntico publicado por otro usuario sigue sin respuesta en el foro.

¿Habeis trabajado con este procedimiento? ¿Alguna idea al respecto?

Os pego los trozos de código relacionados que estoy usando...

'implementar el apicacallbackeventhandler...
Partial Class ViewPropertyMap
        Inherits DotNetNuke.Entities.Modules.PortalModuleBase : Implements IClientAPICallbackEventHandler
 

'esta función se comunica con el javascript del cliente, funciona OK...
Public Function RaiseClientAPICallbackEvent(ByVal eventArgument As String) As String Implements UI.Utilities.IClientAPICallbackEventHandler.RaiseClientAPICallbackEvent
...
return "ok"
end function

'registrar las referencias a las clases a utilizar en el inicio del control
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) handles Me.Init
If ClientAPI.BrowserSupportsFunctionality(ClientAPI.ClientFunctionality.XMLHTTP) AndAlso ClientAPI.BrowserSupportsFunctionality(ClientAPI.ClientFunctionality.DHTML) AndAlso ClientAPI.BrowserSupportsFunctionality(ClientAPI.ClientFunctionality.XML) Then
                ClientAPI.RegisterClientReference(Me.Page, ClientAPI.ClientNamespaceReferences.dnn_xml)
                ClientAPI.RegisterClientReference(Me.Page, ClientAPI.ClientNamespaceReferences.dnn_xmlhttp)
                ClientAPI.RegisterClientReference(Me.Page, ClientAPI.ClientNamespaceReferences.dnn)
                ClientAPI.RegisterClientVariable(Page, "kml_base", GeoPath, False)
                ClientAPI.RegisterClientScriptBlock(Me.Page, "gmap2", "<script type='text/javascript' src='" & ModulePath & "scripts/maps.js" & "'></script>")


                'aquí enlazo mi procedimiento de servidor con un evento en el javascript cliente... pero NO FUNCIONA
               ClientAPI.RegisterPostBackEventHandler(Me, "UpdtSearchx", AddressOf UpdtSearch, False)
          
             'aquí enlazo un botón de servidor para que devuelva el resultado de una función a una función javascript, esto funciona OK...
            cmdSearch.Attributes.Add("onclick", ClientAPI.GetCallbackEventReference(Me, "0", "successFunc", "this",
 End If
End Sub


'este es el procedimiento que debería lanzarse desde el javascript del cliente pues está enlazado en el RegisterPostBackEventHandler al suceso "UpdtSearchx"...
Private Sub UpdtSearch(ByVal args As ClientAPIPostBackEventArgs)

            Try

'... este procedimiento funciona correctamente si lo enlazo a un evento o lo llamo desde cualquier otro procedimiento en el servidor, omito su contenido dada su extensión y escasa relevancia...
End Sub

 


//este es el javascript en el cliente que llamo al hacer zoom en el mapa, al cambiar la ubicación, etc... y que hace la llamda al RegisterPostBackEventHandler, y es en la función dnn.CallPostBack donde se produce el error pues la variable __dnn_postBack es "undefined"...
function updtResults()
{
dnn.callPostBack('UpdtSearchx','m=false');

}

 //y esta es la función del dnn.prototype que recibe la llamada y donde sucede el error...

callPostBack:function(sAction)

{

var sPostBack = dnn.getVar('__dnn_postBack'); //esta variable no existe, no se registra en el cliente...

var sData = '';

if (sPostBack.length > 0) //aquí error pues lenght no está definido ya que sPostBack tampoco...

...

Nuevo Mensaje
 16/06/2008 4:14
 

ya encontré el fallo, estaba referenciando inadecuadamente el objeto que debía hacerse eco del evento javascript, cambie

ClientAPI.RegisterPostBackEventHandler(Me, "UpdtSearchx", AddressOf UpdtSearch, False)

por

ClientAPI.RegisterPostBackEventHandler(Me.PlaceHolder1, "UpdtSearchx", AddressOf UpdtSearch, False)
 y así sí que funciona...

Anterior Anterior
 
Siguiente Siguiente
ForumForumForos DNNForos DNNDesarrolloDesarrolloRegisterPostBackEventHandlerRegisterPostBackEventHandler

En total, tenemos 1098 nuevo(s) hilo(s) y 5265 nuevo(s) mensaje(s)
Los hilos más populares han estado en ¿por que?
Los hilos más activos han estado en no veo el portal desde los pc's de la red

Más activos


UserTotalPosts
jmaldonadom 1101
anonymous 798
javier 488
Faco 395
hiunkeru 184
vitolo 182
Guillaume 168
ccolonia 159
dormio 157
elijo_otroo 138
sonsai 84
Dreamvk 67
tirillos 48
vte_torres 47
oskr226 46

Últimos Mensajes...