ModalPopupExtender se muestra brevemente y despues desaparece

Esto es lo que sucede cuando se realiza un postback o se carga la página. El panel del diálogo es mostrado unos instantes y después desaparece.

Esto es un problema menor la mayoría de las veces, pero no por eso deja de ser molesto.

Lo primero que se me ocurrió fue agregarle al panel, usando el atributo CssClass un estilo “display: none” El resultado fue el esperado. No se mostraba nunca. El único problema es que es no se mostraba ni cuando tenía que mostrarse realmente. O sea, no servía de solución.

Casi por casualidad agregué al tag del panel un atributo style=”display: none”. Esto debería hacer lo mismo que el CssClass pero sin recurrir a hojas de estilos. Y esto sorprendentemente funcionó.

Lo único malo de esta solución es que style no es un atributo válido de asp:panel, por lo tanto, para un purista como yo, es como una espina clavada en pie.

Ultimo intento fue agregar el atributo por código en el form_load, y afortunadamente funcionó así que ahora soy un chico feliz.

Para los que les gusta el código:

    protected void Page_Load(object sender, EventArgs e)
    {
        this.Panel1.Style.Add(HtmlTextWriterStyle.Display, "none");
    }

donde Panel1 es el panel que contiene el ModalPopup


Discussion Area - Leave a Comment