Nuevo sitio

Nos mudamos a www.f5run.com.ar
Mostrando las entradas con la etiqueta Ajax. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Ajax. Mostrar todas las entradas

viernes, 2 de marzo de 2012

jQuery Datepicker y Asp.Net UpdatePanels

Quien haya querido usar el datepicker de Jquery en un formulario ASP.Net con UpdatePanels, habrá notado que después de un partialupdate, el datepicker no funcion más.

La solución es muy sencilla. Basta con inicializar los datepickers dentro de la función pageLoad, de la siguiente manera:


function pageLoad(sender, args) {
            $(".fecha").datepicker();
}




donde "fecha" es el nombre de la clase de los inputs que queremos que tengan el datepicker, por ejemplo:




sábado, 29 de octubre de 2011

Troubleshooting ASP.Net WebMethods

Los WebMethods permiten invocar métodos o funciones de servidor desde el browser. Sin embargo, a veces ocurren algunos problemas que son difíciles de encontrar. A continuación comparto una lista de errores/solución con los que me fui encontrando:

- Method Not found: Si la página llegó con Server.Transfer, antes de invocar la función de servidor, llamar a PageMethods.set_path("nombrepaginaactual.aspx")

miércoles, 27 de abril de 2011

CascadeDropDownList Method Error 500

El AjaxControlToolkit de .Net viene con extender para hacer combos en cascada (también llamados vinculados). En primer lugar, debo aclarar que es una solución mucho más aconsejable que la de incluir updatepanels.

Con este extender, el Browser invoca a un webservice para cargar los combos dependientes. Si algo anda mal en la invocación, se verá en el combo el texto "method error 500".

Una causa muy frecuente de este error, es que por default el webservice está limitado a una acotada cantidad de datos. Esto se puede expandir, agregando en el web.config, lo siguiente:


  
    
      
        
    
  
 

miércoles, 30 de marzo de 2011

ASP.Net + jqModal + Ajax + Hide + Postback = Problema.

He aquí la solución :)

Si utilizamos el plugin de JQuery llamado jqModal, para abrir ventanas AJAX en ASP.Net, nos vamos a encontrar con un problema, si es que la ventana llamada tiene un formulario de servidor (Para más información, ver el post anterior: http://laboticadellanga.blogspot.com/2011/03/como-migrar-los-viejos-popups-ventanas.html)

El problema ocurrirá si luego de abrir y cerrar una ventana jqModal, queremos hacer alguna operación que implique un postback. El problema ocurre, porque al abrir la segunda ventana, se pisa una variable interna de ASP.Net llamada theForm que guarda la referencia al formulario de servidor principal.

La solución es realizar un resguardo de esa variable theForm, antes de abrir la ventana y luego restaurarla en el close. Por ejemplo, si tenemos un archivo js de utilidades, podemos armar estas dos funciones:


function openModal(url) {
    theFormBKP = theForm;
    $('#jqModal').jqm({ ajax: url, modal: true });
    $('#jqModal').jqmShow();
}

function closeModal() {
    $('#jqModal').jqmHide();
    theForm = theFormBKP;
}

La invocación es simple:
showModal("mipopup.aspx");
closeModal();

martes, 29 de marzo de 2011

Cómo migrar los viejos popups a ventanas AJAX

Antiguamente, para hacer una ventana popup en una aplicación web, se utilizaban las funciones window.open() o la propietaria de IE showModalDialog().

Los popups están en franca decadencia. Varios navegadores y plugins los bloquean, suelen dar lugar a confusiones y visualmente dejan mucho que desear.

Afortunadamente, ahora existen varias alternativas para hacer popups sin abrir una nueva ventana. A continuación les presento una que estuve usando que me resultó muy práctica. Se llama jqModal. Lo pueden descargar de: http://dev.iceburg.net/jquery/jqModal/

Utiliza jQuery y permite abrir ventanas modales y no-modales, con títulos, drag-and-drop, sombras, etc... Una característica muy interesante es que el contenido de la ventana puede ser, o bien html plano o bien otra página, la cual es cargada utilizando AJAX en la invocación.

UPDATE: 30/03/2011 - Problemas con los postbacks en ASP.Net. Solución: http://laboticadellanga.blogspot.com/2011/03/aspnet-jqmodal-ajax-hide-postback.html

viernes, 4 de marzo de 2011

Como aplanar un TabContainer para poder imprimirlo

El Ajax Toolkit trae un cómodo control de Tabs (solapas) para usar en ASP.Net
http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Tabs/Tabs.aspx

Una necesidad que podemos tener es la de imprimir una página con Tabs. Para esto, necesitaríamos que el contenido de cada tab estuviera visible, por ejemplo uno debajo del otro.

El siguiente código en VB.Net hace exactamente eso:


        Public Sub ShowTabPlain(ByVal tab As TabContainer)
            Dim panPlainTab As New Panel

            tab.Parent.Controls.AddAt(tab.Parent.Controls.IndexOf(tab), panPlainTab)

            For Each oTabPanel As TabPanel In tab.Tabs
                Dim oTitle As New HtmlGenericControl("H1")
                oTitle.InnerText = oTabPanel.HeaderText
                panPlainTab.Controls.Add(oTitle)
                For Each oControl As Control In oTabPanel.Controls
                    panPlainTab.Controls.Add(oControl)
                Next
                For Each oControl As Control In oTabPanel.Controls
                    oTabPanel.Controls.Remove(oControl)
                Next
            Next
            tab.Visible = False
        End Sub