none
Añadir columna en GridView no enlazada a datos RRS feed

  • Pregunta

  • Hola,

    Tengo un proyecto WebForm en ASP.NET con un gridview enlazado a unos datos que provienen de una instrucción SELECT.

    Lo que quisiera es añadir una columna de tipo CheckBox (no enlazada a ningun dato) cuya funcionalidad sea simplemente seleccionar filas, para posteriormente, pulsando un botón, eliminar registros de manera más o menos masiva o actualizar alguno de sus campos,etc.

    ¿Saben si eso se puede hacer con un GridView? y si es así, ¿cómo?

    Lo llevo intentando un rato y no consigo el resultado esperado!

    Gracias de antemano por su tiempo

    martes, 25 de agosto de 2015 14:43

Respuestas

  • >>Lo que quisiera es añadir una columna de tipo CheckBox

    puedes agregarla desde el diseñador

    en el html define una columna como template donde pones un checkbox dentro

    este es un ejemplo

    <asp:GridView ID="gviewPermission" runat="server" 
            >
            <Columns>
                <asp:TemplateField HeaderText="Allow" ItemStyle-HorizontalAlign="Center">
                    <ItemTemplate>
                        <asp:CheckBox ID="Check_Allow" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 25 de agosto de 2015 14:57
  • Hola de nuevo,

    He conseguido encontrar la solución (a base de hacer pruebas!)

    Lo que he hecho ha sido esto:

            Dim Chk as CheckBox

            For Each dt As GridViewRow In gvBD.Rows
                Chk = dt.FindControl("chkSel")
                If Chk.Checked Then
                    (Codigo)
                End If
            Next

    De todos modos, muchísimas gracias, Leandro, tu ayuda ha sido la clave!

    martes, 25 de agosto de 2015 16:07

Todas las respuestas

  • >>Lo que quisiera es añadir una columna de tipo CheckBox

    puedes agregarla desde el diseñador

    en el html define una columna como template donde pones un checkbox dentro

    este es un ejemplo

    <asp:GridView ID="gviewPermission" runat="server" 
            >
            <Columns>
                <asp:TemplateField HeaderText="Allow" ItemStyle-HorizontalAlign="Center">
                    <ItemTemplate>
                        <asp:CheckBox ID="Check_Allow" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 25 de agosto de 2015 14:57
  • Impresionante!

    Nuevamente quedo maravillado por tu rapidez para contestar y falicidad para dar en el clavo!

    INFINITAS GRACIAS, DON LEANDRO!

    por cierto, olvidaba decir que funciona a la perfección tal como yo queria!

    Recibe un abrazo desde España, pive!

    martes, 25 de agosto de 2015 15:18
  • Disculpa de nuevo mi ignorancia, pero ahora tengo otro problemilla...

    ...no consigo dar con el atributo adecuado para leer en un bucle que filas estan seleccionadas y cuales no, dentro del GridView.

    Te copio la parte del código que no se hacer:

            For Each dt As GridViewRow In gvBD.Rows
                If dt.Cells(0).??? Then
                    (Codigo)
                End If
            Next

    ----------------------------------------------------------------------------------------

            <asp:GridView ID="gvBD" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" Width="800px" AllowSorting="True" PageSize="30">
                <AlternatingRowStyle BackColor="White" />
                <Columns>
                    <asp:TemplateField HeaderText="Sel" ItemStyle-HorizontalAlign="Center">
                        <ItemTemplate>
                            <asp:CheckBox ID="chkSel" runat="server" />    '<====== ESTE ES EL CHECKBOX !!!
                        </ItemTemplate>
                        <ItemStyle HorizontalAlign="Center"></ItemStyle>
                    </asp:TemplateField>
                    <asp:BoundField DataField="Id" HeaderText="Id" />
                    <asp:BoundField DataField="Usuario" HeaderText="Usuari" />
                    <asp:BoundField DataField="Nombre" HeaderText="Nom" />
                     ...

    -------------------------------------------------------------------------------

    martes, 25 de agosto de 2015 15:57
  • Hola de nuevo,

    He conseguido encontrar la solución (a base de hacer pruebas!)

    Lo que he hecho ha sido esto:

            Dim Chk as CheckBox

            For Each dt As GridViewRow In gvBD.Rows
                Chk = dt.FindControl("chkSel")
                If Chk.Checked Then
                    (Codigo)
                End If
            Next

    De todos modos, muchísimas gracias, Leandro, tu ayuda ha sido la clave!

    martes, 25 de agosto de 2015 16:07