Hola a todos. Hace unos días puse otro post y más o menos encontré la respuesta a mi problema, pero sólo fue en parte.
Como ese post era bastante
enrevesado, abro este para comentar la parte para la que aún no he encontrado solución para ver si me pueden echar una mano. Gracias por adelantado.
El problema es es siguiente:
Tengo un Web Site (un sitio web, no una aplicación web) con un updatepanel en el que he metido un control de usuario (ascx).
En dicho control, dependiendo del método al que llame, habilita o deshabilita un botón entre dos de los que tiene e inserta texto en una etiqueta. Esto en mi proyecto dummy (que es una aplicación o proyecto web) funciona bien, pero en el web site donde
debo implementarlo no funciona adecuadamente.
Trabajo con vb.net y framework 4.0.
Declaración del control en la página:
<%@ Register src="~/Controles/Docs/ucDocumentos.ascx" TagName="ucDocumentos" TagPrefix="uc" %>
<uc:ucDocumentos ID="ucDocs" runat="server" ViewStateMode="Enabled" cargarDoc="True" />
y en behind de la página aspx lo cargo así, tras pulsar un botón de la página:
Me.ucDocs.InicializarControl1(docFirmar) ó Me.ucDocs.InicializarControl2(docFirmar)
En el ascx tengo esta declaración del control:
<%@ Control Language="vb" AutoEventWireup="true" CodeFile="ucDocumentos.ascx.vb" Inherits="ucDocumentos" EnableViewState="True" ViewStateMode="Enabled" %>
y estos son los botones:
<asp:Button ID="btn1" runat="server" Text="Documento" OnClientClick="Doc(); return false;" CssClass="btn" UseSubmitBehavior="False" meta:resourcekey="btn1" />
<asp:Button ID="btn2" runat="server" Text="Documentos en Lote" OnClientClick="DocLote(); return false;" CssClass="btn" UseSubmitBehavior="False" meta:resourcekey="btn2"
/>
La etiqueta: <asp:Label ID="lblListaDocs" runat="server" CssClass="lblListaDocs" />
Edito: La propiedad EnableViewState de los botones está a true.
y en el behind del control ascx los siguientes métodos públicos:
Public Sub InicializarControl1(ByVal doc As Doc)
Me.btn1.Enabled = True
Me.btn1.Visible = True
Me.btn2.Enabled = False
Me.btn2.Visible = False
...
y
Public Sub InicializarControl2(ByVal doc As Doc)
Me.btn2.Enabled = True
Me.btn2.Visible = True
Me.btn1.Enabled = False
Me.btn1.Visible = False
...
y para el texto de la etiqueta:
Me.lblListaDocs.Text = "texto..."
Lo dicho, cuando lo invoco con cualquiera de las dos opciones, los dos botonos están habilitados. Parece que no hiciese caso a esas propiedades que se ejecutan en el behind del ascx. y "a priori" no parece que sea algo muy complicado lo que necesito
hacer.
También me ha pasado, desde ese mismo ascx, intentando aplicar una clase a un div, o intentando cambiar alguna etiqueta de la cabecera (meta del header) de la página desde el code behind del control. Todas estas operaciones desde una aplicación web si me
deja y desde mi website no.
¿qué puede ser?
¿Alguien me puede echar una mano?
Muchas gracias. Saludos, Héctor.