Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problemas con Master Pages y Botones

94 views
Skip to first unread message

Patricio Barros

unread,
Nov 3, 2009, 8:18:06 AM11/3/09
to
Señores,
les comento, estoy recién iniciandome en esto del .Net, y la verdad es que
no entiendo mucho... estoy como cuando pasé de programación estructurada (y
lineal) a VB, que fue un gran cambio de mentalidad.
Resulta que estoy en un proyecto que en resumidas cuentas en la Master Page
tiene el encabezado del sitio, una especie de "toolbar" compuesta como por 10
botones normales que se muestran o no dependiendo de lo que quiera el
desarrollador y un pie de página.
En la página donde estoy, muestro un botón de esos, lo activo y le pongo un
text descriptivo de acuerdo a la acción. Hasta allí ningún problema. Pero
cuando selecciono un ComboBox, necesito cambiar su estado a disabled, hago
todo lo que corresponde, es decir, lo llamo nuevamente desde la master page,
y pongo su propiedad enabled en false y no lo hace.
Lo probé con todos los botones, y no pasa nada, sin embargo en el evento
page_load los puedo cargar, habilitar, cambiar nombre, etc.
¿Qué podrá ser?, espero me puedan ayudar.

--
Atte.
PBP

Sashka

unread,
Nov 4, 2009, 11:40:09 AM11/4/09
to
Puedes poner algo de tu código?
El Combo es autopostback??
No te serviría hacerlo´en el cliente?

Sashka

"Patricio Barros" <patrici...@hotmail.com> escribió en el mensaje de
noticias:A7836863-9330-4A63...@microsoft.com...

pbarros

unread,
Nov 4, 2009, 12:28:35 PM11/4/09
to
On 4 nov, 13:40, "Sashka" <Sas...@comunidad.anti-spam> wrote:
> Puedes poner algo de tu código?
> El Combo es autopostback??
> No te serviría hacerlo´en el cliente?
>
> Sashka
>
> "Patricio Barros" <patricio_bar...@hotmail.com> escribió en el mensaje de
> noticias:A7836863-9330-4A63-A2D6-EFE415D24...@microsoft.com...

>
>
>
> > Señores,
> > les comento, estoy recién iniciandome en esto del .Net, y la verdad es que
> > no entiendo mucho... estoy como cuando pasé de programación estructurada
> > (y
> > lineal) a VB, que fue un gran cambio de mentalidad.
> > Resulta que estoy en un proyecto que en resumidas cuentas en la Master
> > Page
> > tiene el encabezado del sitio, una especie de "toolbar" compuesta como por
> > 10
> > botones normales que se muestran o no dependiendo de lo que quiera el
> > desarrollador y un pie de página.
> > En la página donde estoy, muestro un botón de esos, lo activo y le pongo
> > un
> > text descriptivo de acuerdo a la acción. Hasta allí ningún problema. Pero
> > cuando selecciono un ComboBox, necesito cambiar su estado a disabled, hago
> > todo lo que corresponde, es decir, lo llamo nuevamente desde la master
> > page,
> > y pongo su propiedad enabled en false y no lo hace.
> > Lo probé con todos los botones, y no pasa nada, sin embargo en el evento
> > page_load los puedo cargar, habilitar, cambiar nombre, etc.
> > ¿Qué podrá ser?, espero me puedan ayudar.
>
> > --
> > Atte.
> > PBP- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

el Combo:
<asp:DropDownList id="LstInd_UsuarioSaliente" runat="server"
DataTextField="LogCargo"
DataValueField="Usr_Login"
DataSourceID="SqlDataSourceInd_Login2"
CssClass="FontNormal" AutoPostBack="true"
onselectedindexchanged="LstInd_UsuarioSaliente_SelectedIndexChanged" >
</asp:DropDownList>

el Evento:
protected void LstInd_UsuarioSaliente_SelectedIndexChanged(object
sender, EventArgs e)
{
if (LstInd_UsuarioSaliente.SelectedItem.Value == "")
LblInd_UsuarioSaliente.Text = "";
else
{
string qy = "BSC_LstUsr '" +
LstInd_UsuarioSaliente.SelectedItem.Value + "'";
using (SqlDataReader dr = BSC_CM.MethodDataReader(qy))
{
if (dr.Read())
{
LblInd_UsuarioSaliente.Text = dr
["Usr_Nombre"].ToString();

Button xBtnGuardar = (Button) Master.FindControl
("BtnEliminar");
xBtnGuardar.Enabled = true;
xBtnGuardar.Focus();
//xBtnGuardar.Text = "Asignado";
}
else
{
Button xBtnGuardar = (Button) Master.FindControl
("BtnEliminar");
xBtnGuardar.Enabled = false;
}
}
}
}


El botón está en la Master Page, lo extraño es que cuando se carga,
puedo asignarle o quitarle propiedades y funciona.

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) {
Button xBtnGuardar = (Button)Master.FindControl
("BtnEliminar");
xBtnGuardar.Visible = true;
xBtnGuardar.Enabled = false;
xBtnGuardar.Text = "Asignar";

MasterPages_BSC_MP1 xMP = (MasterPages_BSC_MP1)Page.Master;
xMP.BtnEliminarClick.Click += new System.EventHandler
(BtnGuardar_Click);
}
}

Cómo se haría en el cliente?, necesito que se active un evento en el
servidor... cosa que tampoco funciona.

Sashka

unread,
Nov 4, 2009, 1:49:09 PM11/4/09
to
Veamos, esto me funciona.....

MasterPage :
HTML:
<form id="form1" runat="server">
<div>


<asp:DropDownList id="LstInd_UsuarioSaliente" runat="server"

AutoPostBack="true"
onselectedindexchanged="LstInd_UsuarioSaliente_SelectedIndexChanged" >
<asp:ListItem Value="1">AA</asp:ListItem>
<asp:ListItem Value="2">BB</asp:ListItem>
<asp:ListItem Value="3">CC</asp:ListItem>
</asp:DropDownList>

<asp:TextBox ID="LblInd_UsuarioSaliente"
runat="server"></asp:TextBox>
<asp:Button ID="BtnEliminar" runat="server" Text="Button" />

<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>
</div>
</form>
C�digo:


if (LstInd_UsuarioSaliente.SelectedItem.Value == "")
LblInd_UsuarioSaliente.Text = "";
else
{

if (LstInd_UsuarioSaliente.SelectedItem.Value == "3")
a = 10;


string qy = "BSC_LstUsr '" +
LstInd_UsuarioSaliente.SelectedItem.Value + "'";

//using (SqlDataReader dr = BSC_CM.MethodDataReader(qy)) SIMULO
UN QUERY
//{
// if (dr.Read())
// {
if (a == 9)
{
LblInd_UsuarioSaliente.Text =
LstInd_UsuarioSaliente.SelectedItem.Text;//dr["Usr_Nombre"].ToString();

BtnEliminar.Enabled = true;
BtnEliminar.Focus();
//xBtnGuardar.Text = "Asignado";
}
else
{
BtnEliminar.Enabled = false;
}
}
//}

P�gina Default:
HTML:
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
<br />probando
</asp:Content>

C�digo:

protected void Page_Load(object sender, EventArgs e)
{

//if (!Page.IsPostBack) No puedes hacerlo s�lo si no es postback
//{
Button xBtnGuardar = (Button)Master.FindControl("BtnEliminar");


xBtnGuardar.Visible = true;
xBtnGuardar.Enabled = false;
xBtnGuardar.Text = "Asignar";

xBtnGuardar.Click += new EventHandler(xBtnGuardar_Click);
//}
}

void xBtnGuardar_Click(object sender, EventArgs e)
{
// algo
}

Sashka

"pbarros" <patrici...@gmail.com> escribi� en el mensaje de
noticias:36fc7ba9-2600-48bb...@a21g2000yqc.googlegroups.com...


> On 4 nov, 13:40, "Sashka" <Sas...@comunidad.anti-spam> wrote:

>> Puedes poner algo de tu c�digo?
>> El Combo es autopostback??
>> No te servir�a hacerlo�en el cliente?
>>
>> Sashka
>>
>> "Patricio Barros" <patricio_bar...@hotmail.com> escribi� en el mensaje de
>> noticias:A7836863-9330-4A63-A2D6-EFE415D24...@microsoft.com...
>>
>>
>>
>> > Se�ores,
>> > les comento, estoy reci�n iniciandome en esto del .Net, y la verdad es
>> > que
>> > no entiendo mucho... estoy como cuando pas� de programaci�n

>> > estructurada
>> > (y
>> > lineal) a VB, que fue un gran cambio de mentalidad.
>> > Resulta que estoy en un proyecto que en resumidas cuentas en la Master
>> > Page
>> > tiene el encabezado del sitio, una especie de "toolbar" compuesta como
>> > por
>> > 10
>> > botones normales que se muestran o no dependiendo de lo que quiera el

>> > desarrollador y un pie de p�gina.
>> > En la p�gina donde estoy, muestro un bot�n de esos, lo activo y le
>> > pongo
>> > un
>> > text descriptivo de acuerdo a la acci�n. Hasta all� ning�n problema.

>> > Pero
>> > cuando selecciono un ComboBox, necesito cambiar su estado a disabled,
>> > hago
>> > todo lo que corresponde, es decir, lo llamo nuevamente desde la master
>> > page,
>> > y pongo su propiedad enabled en false y no lo hace.

>> > Lo prob� con todos los botones, y no pasa nada, sin embargo en el

>> > evento
>> > page_load los puedo cargar, habilitar, cambiar nombre, etc.

>> > �Qu� podr� ser?, espero me puedan ayudar.

> El bot�n est� en la Master Page, lo extra�o es que cuando se carga,


> puedo asignarle o quitarle propiedades y funciona.
>
> protected void Page_Load(object sender, EventArgs e)
> {
> if (!Page.IsPostBack) {
> Button xBtnGuardar = (Button)Master.FindControl
> ("BtnEliminar");
> xBtnGuardar.Visible = true;
> xBtnGuardar.Enabled = false;
> xBtnGuardar.Text = "Asignar";
>
> MasterPages_BSC_MP1 xMP = (MasterPages_BSC_MP1)Page.Master;
> xMP.BtnEliminarClick.Click += new System.EventHandler
> (BtnGuardar_Click);
> }
> }
>

> C�mo se har�a en el cliente?, necesito que se active un evento en el

pbarros

unread,
Nov 4, 2009, 3:46:02 PM11/4/09
to
On 4 nov, 15:49, "Sashka" <Sas...@comunidad.anti-spam> wrote:
> Veamos, esto me funciona.....
>
> MasterPage :
> HTML:
>     <form id="form1" runat="server">
>     <div>
>     <asp:DropDownList id="LstInd_UsuarioSaliente" runat="server"
> AutoPostBack="true"
> onselectedindexchanged="LstInd_UsuarioSaliente_SelectedIndexChanged" >
>         <asp:ListItem Value="1">AA</asp:ListItem>
>         <asp:ListItem Value="2">BB</asp:ListItem>
>         <asp:ListItem Value="3">CC</asp:ListItem>
> </asp:DropDownList>
>
>         <asp:TextBox ID="LblInd_UsuarioSaliente"
> runat="server"></asp:TextBox>
>         <asp:Button ID="BtnEliminar" runat="server" Text="Button" />
>
>         <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
>
>         </asp:ContentPlaceHolder>
>     </div>
>     </form>
> Código:

>         if (LstInd_UsuarioSaliente.SelectedItem.Value == "")
>             LblInd_UsuarioSaliente.Text = "";
>         else
>         {
>             if (LstInd_UsuarioSaliente.SelectedItem.Value == "3")
>                 a = 10;
>             string qy = "BSC_LstUsr '" +
> LstInd_UsuarioSaliente.SelectedItem.Value + "'";
>             //using (SqlDataReader dr = BSC_CM.MethodDataReader(qy)) SIMULO
> UN QUERY
>             //{
>             //    if (dr.Read())
>             //    {
>             if (a == 9)
>             {
>                 LblInd_UsuarioSaliente.Text =
> LstInd_UsuarioSaliente.SelectedItem.Text;//dr["Usr_Nombre"].ToString();
>
>                 BtnEliminar.Enabled = true;
>                 BtnEliminar.Focus();
>                 //xBtnGuardar.Text = "Asignado";
>             }
>             else
>             {
>                 BtnEliminar.Enabled = false;
>             }
>         }
>         //}
>
> Página Default:

> HTML:
> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
> </asp:Content>
> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1"
> Runat="Server">
> <br />probando
> </asp:Content>
>
> Código:

>
>    protected void Page_Load(object sender, EventArgs e)
>     {
>         //if (!Page.IsPostBack) No puedes hacerlo sólo si no es postback

>         //{
>             Button xBtnGuardar = (Button)Master.FindControl("BtnEliminar");
>             xBtnGuardar.Visible = true;
>             xBtnGuardar.Enabled = false;
>             xBtnGuardar.Text = "Asignar";
>             xBtnGuardar.Click += new EventHandler(xBtnGuardar_Click);
>         //}
>     }
>
>     void xBtnGuardar_Click(object sender, EventArgs e)
>     {
>         // algo
>     }
>
> Sashka
>
> "pbarros" <patricio.bar...@gmail.com> escribió en el mensaje de
> noticias:36fc7ba9-2600-48bb-a7d2-bd648709d...@a21g2000yqc.googlegroups.com...

>
>
>
> > On 4 nov, 13:40, "Sashka" <Sas...@comunidad.anti-spam> wrote:
> >> Puedes poner algo de tu código?
> >> El Combo es autopostback??
> >> No te serviría hacerlo´en el cliente?
>
> >> Sashka
>
> >> "Patricio Barros" <patricio_bar...@hotmail.com> escribió en el mensaje de
> >> noticias:A7836863-9330-4A63-A2D6-EFE415D24...@microsoft.com...
>
> >> > Señores,
> >> > les comento, estoy recién iniciandome en esto del .Net, y la verdad es
> >> > que
> >> > no entiendo mucho... estoy como cuando pasé de programación

> >> > estructurada
> >> > (y
> >> > lineal) a VB, que fue un gran cambio de mentalidad.
> >> > Resulta que estoy en un proyecto que en resumidas cuentas en la Master
> >> > Page
> >> > tiene el encabezado del sitio, una especie de "toolbar" compuesta como
> >> > por
> >> > 10
> >> > botones normales que se muestran o no dependiendo de lo que quiera el
> >> > desarrollador y un pie de página.
> >> > En la página donde estoy, muestro un botón de esos, lo activo y le
> >> > pongo
> >> > un
> >> > text descriptivo de acuerdo a la acción. Hasta allí ningún problema.

> >> > Pero
> >> > cuando selecciono un ComboBox, necesito cambiar su estado a disabled,
> >> > hago
> >> > todo lo que corresponde, es decir, lo llamo nuevamente desde la master
> >> > page,
> >> > y pongo su propiedad enabled en false y no lo hace.
> >> > Lo probé con todos los botones, y no pasa nada, sin embargo en el

> >> > evento
> >> > page_load los puedo cargar, habilitar, cambiar nombre, etc.
> >> > ¿Qué podrá ser?, espero me puedan ayudar.
> > El botón está en la Master Page, lo extraño es que cuando se carga,

> > puedo asignarle o quitarle propiedades y funciona.
>
> >    protected void Page_Load(object sender, EventArgs e)
> >    {
> >        if (!Page.IsPostBack) {
> >        Button xBtnGuardar = (Button)Master.FindControl
> > ("BtnEliminar");
> >        xBtnGuardar.Visible = true;
> >        xBtnGuardar.Enabled = false;
> >        xBtnGuardar.Text = "Asignar";
>
> >        MasterPages_BSC_MP1 xMP = (MasterPages_BSC_MP1)Page.Master;
> >        xMP.BtnEliminarClick.Click += new System.EventHandler
> > (BtnGuardar_Click);
> >        }
> >    }
>
> > Cómo se haría en el cliente?, necesito que se active un evento en el
> > servidor... cosa que tampoco funciona.- Ocultar texto de la cita -

>
> - Mostrar texto de la cita -

Es algo parecido, sólo que la master page sólo tiene declarado el
evento click y no tiene código, por lo tanto el código y el evento lo
genero desde la página que hace uso de la master page.
El Combo también está en la página, no en la master; la master sólo
tiene el encabezado, los botones luego (son como 10 todos no visibles)
y el pie.

De la página, le asigno valores a uno de esos botones no visibles, le
cambio el text y le digo que usaré el evento Click, por lo tanto en el
código de mi página genero el BOTON_CLICK.

¿Me hago entender?

Sashka

unread,
Nov 4, 2009, 8:15:24 PM11/4/09
to
No estoy segura de entenderte, pero creo que tu problema es el c�digo en el
load de la master...
Acabo de probar lo que me indicas, en la Master unos cuantos botones y NADA
de c�digo .....
En la p�gina, un combo y un textbox.....
En el load de la p�gina, tomo uno de esos botones y le asigno algunas
propiedades y un handler para el Click

Button xBtnGuardar = (Button)Master.FindControl("BtnEliminar");
xBtnGuardar.Visible = true;
xBtnGuardar.Enabled = false;
xBtnGuardar.Text = "Asignar";
xBtnGuardar.Click += new EventHandler(xBtnGuardar_Click);

void xBtnGuardar_Click(object sender, EventArgs e)
{
// alg�n c�digo
}

Y el SelectedIndexChanged que te puse antes en donde habilito o deshabilito
el bot�n.

Funciona...

Sashka


> Es algo parecido, s�lo que la master page s�lo tiene declarado el
> evento click y no tiene c�digo, por lo tanto el c�digo y el evento lo
> genero desde la p�gina que hace uso de la master page.
> El Combo tambi�n est� en la p�gina, no en la master; la master s�lo


> tiene el encabezado, los botones luego (son como 10 todos no visibles)
> y el pie.
>

> De la p�gina, le asigno valores a uno de esos botones no visibles, le
> cambio el text y le digo que usar� el evento Click, por lo tanto en el
> c�digo de mi p�gina genero el BOTON_CLICK.
>
> �Me hago entender?

pbarros

unread,
Nov 5, 2009, 7:11:26 AM11/5/09
to
On 4 nov, 22:15, "Sashka" <Sas...@comunidad.anti-spam> wrote:
> No estoy segura de entenderte, pero creo que tu problema es el código en el

> load de la master...
> Acabo de probar lo que me indicas, en la Master unos cuantos botones y NADA
> de código .....
> En la página, un combo y un textbox.....
> En el load de la página, tomo uno de esos botones y le asigno algunas

> propiedades y un handler para el Click
>
>         Button xBtnGuardar = (Button)Master.FindControl("BtnEliminar");
>         xBtnGuardar.Visible = true;
>         xBtnGuardar.Enabled = false;
>         xBtnGuardar.Text = "Asignar";
>         xBtnGuardar.Click += new EventHandler(xBtnGuardar_Click);
>
>    void xBtnGuardar_Click(object sender, EventArgs e)
>     {
>         // algún código

>     }
>
> Y el SelectedIndexChanged que te puse antes en donde habilito o deshabilito
> el botón.
>
> Funciona...
>
> Sashka
>
>
>

> > Es algo parecido, sólo que la master page sólo tiene declarado el
> > evento click y no tiene código, por lo tanto el código y el evento lo
> > genero desde la página que hace uso de la master page.
> > El Combo también está en la página, no en la master; la master sólo

> > tiene el encabezado, los botones luego (son como 10 todos no visibles)
> > y el pie.
>
> > De la página, le asigno valores a uno de esos botones no visibles, le
> > cambio el text y le digo que usaré el evento Click, por lo tanto en el
> > código de mi página genero el BOTON_CLICK.
>
> > ¿Me hago entender?- Ocultar texto de la cita -

>
> - Mostrar texto de la cita -

Ok Sashka, muchas gracias, voy a probarlo.

0 new messages