Gridview con c#

Quiero poner en un gridview checkbox para eliminar registros(tipo hotmail), todo me funciona si creo la conexión por el asistente de conexión de visual studio, pero cuando yo creo mi clase conexión y consultas, no me funciona, nunca reconoce si esta "checked" podrías ayudarme con eso.

1 respuesta

Respuesta
1
Revisa que el checkbox si tengas el nombre delc ampo correcto
Hola, pues el nombre del campo debe estar bueno, porque como te dije funciona cuando realizo la conexión a la BD por medio del asistente del visual studio, mira este código, lo que pretendo es que cunado de click a un botón identifique cuales están seleccionados y muestre el contenido de una columna en un label, como te decía, si realizo la conexión y la consulta por medio del asistente me funciona, pero cuando creo la conexión y la consulta yo mismo, ya no reconoce que campos estan chequeados, la conexión esta bien e igualmente la consulta
bool estado = true;
        foreach (GridViewRow fila in GridView1.Rows)
        {
            estado = ((CheckBox)fila.FindControl("chk")).Checked;
            if (estado)
            {
                Label1.Text += fila.Cells[2].Text + " ";
            }
        }
Gracias.
Si lo haces manual debes ir a la plantilla, y seleccionar la propiedad checked del control y colocarle en el enlace a datos Evale("nombrecampo")
Hola, que pena mi ignorancia pero no entendí, voy a la plantilla y copio la propiedad checked y pongo lo que dices pero me da error, mil disculpas pero me podrías explicar de nuevo ...
Gracias.
No tengo idea si tu aplicación es web o windows
Mi aplicación es web, la columna del checkbox es:
<asp:TemplateField HeaderText="eliminar">
                <ItemTemplate>
                    <asp:CheckBox ID="chk" runat="server" Checked='<%# Eval("per_ano") %>' />
                </ItemTemplate>
            </asp:TemplateField>
Pero no sabría si estoy en lo correcto y que nombre de que parámetro vendría en el eval
Y no se que ams información darte XD
Gracias
Si el campo per_ano es de tipo boolean debe hacerlo, si es otro tipo debes hacerlo manualmente.
No se si entiendo bien la idea, pero según lo que me dices, piensas que yo quiero cargar los valores del checkbox desde BD, pero no. Lo que quiero es un eliminar tipo hotmail, crear una columna de checkbox, y cuando cargue los registros poder seleccionar la cantidad que quiera y eliminarlos, si cargo los datos con una consulta creada por el asistente del visual studio no hay problema, pero si yo creo una clase que me cargue los datos nunca me reconoce si esta seleccionado o no, el código para recorrer y mirar si están seleccionados es este:
bool estado = true;
        foreach (GridViewRow fila in GridView1.Rows)
        {
            estado = ((CheckBox)fila.FindControl("chk")).Checked;
            if (estado)
            {
                Label1.Text += fila.Cells[2].Text + " ";
            }
        }
En este simplemente selecciono el campo de una columna donde los checkbox estén seleccionados, te reitero que si la consulta es hecha por el asistente no hay problema pero con una clase que yo cree para los datos ya no reconoce cuando están seleccionados los checkbox
Las columnas dentro del gridview están creadas dentro de la etiquet <columns> y dentro de esta defino la columna de checkbox de esta manera:
<asp:TemplateField HeaderText="Eliminar">
                        <ItemTemplate>
                            <asp:CheckBox ID="chk" runat="server"/>
                        </ItemTemplate>
                    </asp:TemplateField>
Espero me puedas ayudar, ya no se que hacer
Gracias.
¿Supongo qué en Label1.text solo queda al ultima selección cierto?
Pues como tiene el " += " quedan todas ya que se agregan pero eso es lo de menos, lo que necesito es que reconozca cuales están seleccionadas :P
Gracias y que pena tanta molestia
Esto:            estado = ((CheckBox)fila.FindControl("chk")).Checked; siempre es false?
¿El checkbox que colocaste en la plantilla se llama "chk" o tiene otro nombre?
<asp:TemplateField HeaderText="Eliminar">
                        <ItemTemplate>
                            <asp:CheckBox ID="chk" runat="server"/>
                        </ItemTemplate>
                    </asp:TemplateField>
Si, en el ID esta así, pero siempre da false (solamente cuando creo mi clase conexión) cuando es por el asistente de visual todo funciona, reittero esto porque me parece de lo más raro
Ya lo descubrí, que pena tanta molestia, era que cargaba mi gridview en el pageload pero no lo encerré con la condición (! Ispostback) entonces siempre que le daba click el me borraba los checkeados paravolver a cargar el gridview, que pena me pase de bruto pero igual muy agradecido por la ayuda y el tiempo que dedicaste
Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas