ASP.NET - habilitar botón de afuera al checkear un checkbox dentro de un gridview

   
Vista:

habilitar botón de afuera al checkear un checkbox dentro de un gridview

Publicado por felipe (6 intervenciones) el 18/08/2016 17:29:19
Buen día, tengo una consulta ..

quiero habilitar un botón al seleccionar un checkbox que está dentro de un Gridview con c#, este código tengo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<asp:GridView ID="GridView1" runat="server"  AutoGenerateColumns ="False" DataSourceID="SqlDataSource1" class="table table-bordered table-hover table-responsive  table-condensed " OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
                    <Columns>
 
                        <asp:BoundField DataField="NOMBRE_USUARIO" HeaderText="Nombre" SortExpression="NOMBRE_USUARIO" />
                        <asp:BoundField DataField="APELLIDO_USUARIO" HeaderText="Apellido" SortExpression="APELLIDO_USUARIO" />
                        <asp:BoundField DataField="RUT_USUARIO" HeaderText="Rut" SortExpression="RUT_USUARIO" />
                        <asp:BoundField DataField="CONTRASENA" HeaderText="Contraseña" SortExpression="CONTRASENA" />
                         <asp:BoundField DataField="NOMBRE_PERFIL" HeaderText="PERFIL" SortExpression="NOMBRE_PERFIL" />
                          <asp:TemplateField>
                            <ItemTemplate>
                                <asp:CheckBox runat="server"  ID="chk_selec"  />
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                    <HeaderStyle BorderStyle="Dotted" />
                </asp:GridView>

y pensaba en algo como esto pero no me funciona:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
 
                //    //Obtienes cada checkbox de las filas
                CheckBox c = (System.Web.UI.WebControls.CheckBox)GridView1.Rows[i].Cells[0].FindControl("chk_selec");
 
                if (c.Checked)//Validas que el checkbox este seleccionado
                {
                    btnEliminarUsuario.Enabled = true;
 
                }
                else { btnEliminarUsuario.Enabled = false; }
            }
        }

Ayuda pliss :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alain

habilitar botón de afuera al checkear un checkbox dentro de un gridview

Publicado por Alain (4 intervenciones) el 18/08/2016 19:18:04
Hola

Creo que estás invocando el evento incorrecto (del gridview). Debes crear un manejador para el evento del checkbox. Algo así (un ejemplo sencillo pero creo que te ayuda):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<asp:gridview ID="Gridview1" runat="server" AutoGenerateColumns ="False" Visible="true">
	<Columns>
 
		<asp:BoundField DataField="NOMBRE_USUARIO" HeaderText="Nombre" SortExpression="NOMBRE_USUARIO" />
			<asp:TemplateField>
			<ItemTemplate>
				<asp:CheckBox runat="server"  ID="chk_selec" OnCheckedChanged="chk_selec_CheckedChanged" AutoPostBack="true"/>
			</ItemTemplate>
		</asp:TemplateField>
	</Columns>
	<HeaderStyle BorderStyle="Dotted" />
</asp:gridview>
 
	protected void Page_Load(object sender, EventArgs e)
	{
		if (!IsPostBack)
		{
			List<Usuario> List = new List<Usuario>();
			Usuario user = new Usuario();
			user.NOMBRE_USUARIO = "Pepe";
			List.Add(user);
			Gridview1.DataSource = List;
			Gridview1.DataBind();
		}
	}
 
	protected void chk_selec_CheckedChanged(object sender, EventArgs e)
	{
		if ((sender as CheckBox).Checked)
		{
			Response.Write("<script>alert('Hola')</script>"); //aqui iria el codigo para deshabilitar el boton
		}
	}
}
 
class Usuario {
	public string NOMBRE_USUARIO { set; get; }
}

Espero te ayude. Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar