none
Grilla Y Check RRS feed

  • Pregunta

  • Olas, Tengo una grilla con unos check la grilla obtiene datos de la base de datos

    lo que quiero que haga es, a seleccionar el check presionar otro boton y ke esa

    fila que se seleciono se elimine y asi desaparesca de dicha grilla aunque la insertare 

    a otra tabla pero asta el momento quiero lograr que se elimine, no tengo mucho conociemiento

    en gridview por eso la consulta gracias saludos. 


    1455

    jueves, 27 de diciembre de 2012 18:06

Respuestas

  • Hola @Sebastian no es nada complicado simplemente crea dos columnas donde una este el CheckBox y otra donde se este guardando la ID de ese registro, ojo debes tener en cuenta la propiedad DataKeyNames que es el que servirá como enlace.

    <asp:GridView ID="GridView1" runat="server"	
    	AutoGenerateColumns="False" DataKeyNames="id">
    	<Columns >
            	<asp:TemplateField HeaderText="Acción">
                    	<ItemTemplate>
                            	<asp:CheckBox ID="chkDelete" runat="server" />
                            </ItemTemplate>
                   	</asp:TemplateField>
    		<asp:TemplateField HeaderText="Codigo" Visible="false">
    			<ItemTemplate>
                            	<asp:Label ID="LblID" runat="server" Text='<%# Eval("id") %>'></asp:Label>
                           	</ItemTemplate>
    		</asp:TemplateField>
    	</Columns>                                    
    </asp:GridView>
    
    <asp:Button ID="btnDelect" runat="server" Text="Eliminar" onclick="btnDelect_Click" />

    El código del evento del botón seria de esta manera:

    protected void btnDelect_Click(object sender, EventArgs e)
            {
                foreach (GridViewRow row in GridView1.Rows)
                {
                    // Encontrar el CheckBox.
                    var chk = row.FindControl("chkDelete") as CheckBox;
                    
                    if (chk.Checked)
                    {
                        // Al encontrar el ID dependerá que se realice la eliminación.
                        var LblID = row.FindControl("LblID") as Label;
    
                        // Utilizar una variable de cadena para sujetar el CadenaString.
                        String CadenaString = "Data Source = ************; Initial Catalog = *******; User ID = ******; Password = **********";
    
                        // Crear un objeto SqlConnection,
                        // y luego pasar la CadenaString al constructor.
                        SqlConnection Conexion = new SqlConnection(CadenaString);
    
                        SqlCommand Comand = new SqlCommand("DELETE FROM productos WHERE id = @Id", Conexion);
                        Comand.Parameters.AddWithValue("@Id", int.Parse(LblID.Text));
    
                        Conexion.Open();
                        Comand.ExecuteNonQuery();
                        Conexion.Close();
                    }                
                }
    
                // Para que se actualice el GridView            
                // Aquí simplemente llamas el método que te liste los datos del GridView para que se actualice la Grilla.
            }




    jueves, 27 de diciembre de 2012 18:19

Todas las respuestas

  • Hola @Sebastian no es nada complicado simplemente crea dos columnas donde una este el CheckBox y otra donde se este guardando la ID de ese registro, ojo debes tener en cuenta la propiedad DataKeyNames que es el que servirá como enlace.

    <asp:GridView ID="GridView1" runat="server"	
    	AutoGenerateColumns="False" DataKeyNames="id">
    	<Columns >
            	<asp:TemplateField HeaderText="Acción">
                    	<ItemTemplate>
                            	<asp:CheckBox ID="chkDelete" runat="server" />
                            </ItemTemplate>
                   	</asp:TemplateField>
    		<asp:TemplateField HeaderText="Codigo" Visible="false">
    			<ItemTemplate>
                            	<asp:Label ID="LblID" runat="server" Text='<%# Eval("id") %>'></asp:Label>
                           	</ItemTemplate>
    		</asp:TemplateField>
    	</Columns>                                    
    </asp:GridView>
    
    <asp:Button ID="btnDelect" runat="server" Text="Eliminar" onclick="btnDelect_Click" />

    El código del evento del botón seria de esta manera:

    protected void btnDelect_Click(object sender, EventArgs e)
            {
                foreach (GridViewRow row in GridView1.Rows)
                {
                    // Encontrar el CheckBox.
                    var chk = row.FindControl("chkDelete") as CheckBox;
                    
                    if (chk.Checked)
                    {
                        // Al encontrar el ID dependerá que se realice la eliminación.
                        var LblID = row.FindControl("LblID") as Label;
    
                        // Utilizar una variable de cadena para sujetar el CadenaString.
                        String CadenaString = "Data Source = ************; Initial Catalog = *******; User ID = ******; Password = **********";
    
                        // Crear un objeto SqlConnection,
                        // y luego pasar la CadenaString al constructor.
                        SqlConnection Conexion = new SqlConnection(CadenaString);
    
                        SqlCommand Comand = new SqlCommand("DELETE FROM productos WHERE id = @Id", Conexion);
                        Comand.Parameters.AddWithValue("@Id", int.Parse(LblID.Text));
    
                        Conexion.Open();
                        Comand.ExecuteNonQuery();
                        Conexion.Close();
                    }                
                }
    
                // Para que se actualice el GridView            
                // Aquí simplemente llamas el método que te liste los datos del GridView para que se actualice la Grilla.
            }




    jueves, 27 de diciembre de 2012 18:19
  • hola

    pero en que accion vas a realizar esto, tendras algun boton que recorras los check del grid

    http://social.msdn.microsoft.com/Forums/es-UY/netfxwebes/thread/5a3da68c-2cac-490b-9642-e34c70d7d56f

    como en el link veras como se recorre y se detecta si la row del grid esta marcada

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 27 de diciembre de 2012 18:33