حذف یک سطر از GridView در ASP.Net

جمعه 30 مرداد 1394

در این مقاله به شما نشان خواهیم داد که چگونه در ASP.Net سطرهای انتخاب شده را از GridView حذف نمایید.

حذف یک سطر از GridView در ASP.Net

برای این کار از checkbox در GridView و یک button استفاده می کنیم. کاربر سطرهایی که می خواهد حذف کند، از طریق checkbox در GridView انتخاب می کند و سپس با کلیک کردن بر روی button این سطر، از GridView و همچنین دیتابیس حذف می شود.

بخش اول: ایجاد پروژه

گام اول

ویژوال استودیو را باز کرده و یک وب سایت از نوع empty ایجاد می کنیم. نام مناسبی برای آن انتخاب می کنیم، در اینجا پروژه ای به نام Gridview_demo ایجاده کرده ایم.

گام دوم

پس از باز شدن وب سایت، یک webform و Database به صورتی که در ادامه توضیح داده می شود، به پروژه اضافه می کنیم.

webform:

روی نام پروژه در solution explorer راست کلیک کرده و Add و سپس New Item را انتخاب می کنیم و از بین Itemها webform را انتخاب می کنیم. نام آن را Gridview_demo.aspx می گذاریم.

SQL Server Database:

مانند مرحله قبل با استفاده از گزینه Add New Item، این بار یک SQL Server Database به پروژه اضافه می کنیم. توجه داشته باشید که Database را در پوشه App_Data قرار دهید.

بخش دوم: تنظیمات Database

گام سوم

جدولی به نام tbl_data به دیتابیس خود (Database.mdf) اضافه می کنیم. فایل Database.mdf را باز کرده روی Table کلیک کرده و یک جدول جدید ایجاد می کنیم و آن را مانند جدول زیر طراحی می نماییم.

بخش سوم: طراحی

گام چهارم

حال کدهای خود را در صفحه Gridview_demo.aspx نوشته و GridView و button گفته شده را ایجاد می کنیم.

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  
      
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
      
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head runat="server">  
        <title></title>  
    </head>  
    <body>  
        <form id="form1" runat="server">  
        <div>  
          
            <table style="width:100%;">  
                <tr>  
                    <td>  
                         </td>  
                    <td>  
                         </td>  
                    <td>  
                         </td>  
                </tr>  
                <tr>  
                    <td>  
                         </td>  
                    <td>  
                        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"   
                            DataKeyNames="id">  
                            <Columns>  
                                <asp:TemplateField HeaderText="Student_ID">  
                                    <EditItemTemplate>  
                                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("id") %>'></asp:TextBox>  
                                    </EditItemTemplate>  
                                    <ItemTemplate>  
                                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>  
                                    </ItemTemplate>  
                                </asp:TemplateField>  
                                <asp:TemplateField HeaderText="Student_Name">  
                                    <EditItemTemplate>  
                                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("name") %>'></asp:TextBox>  
                                    </EditItemTemplate>  
                                    <ItemTemplate>  
                                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("name") %>'></asp:Label>  
                                    </ItemTemplate>  
                                </asp:TemplateField>  
                                <asp:TemplateField HeaderText="Student_City">  
                                    <EditItemTemplate>  
                                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("city") %>'></asp:TextBox>  
                                    </EditItemTemplate>  
                                    <ItemTemplate>  
                                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("city") %>'></asp:Label>  
                                    </ItemTemplate>  
                                </asp:TemplateField>  
                                <asp:TemplateField>  
                                    <EditItemTemplate>  
                                        <asp:CheckBox ID="CheckBox1" runat="server" />  
                                    </EditItemTemplate>  
                                    <ItemTemplate>  
                                        <asp:CheckBox ID="CheckBox1" runat="server" />  
                                    </ItemTemplate>  
                                </asp:TemplateField>  
                            </Columns>  
                        </asp:GridView>  
                    </td>  
                    <td>  
                         </td>  
                </tr>  
                <tr>  
                    <td>  
                         </td>  
                    <td>  
                        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />  
                    </td>  
                    <td>  
                         </td>  
                </tr>  
            </table>  
          
        </div>  
        </form>  
    </body>  
    </html>  

برای قرار دادن checkbox در Gridview روی فلش کنار آن کلیک کرده، Edit columns را انتخاب می کنیم. در منوی سمت چپ، CheckBoxField را انتخاب می کنیم.

GridView ما درنهایت به شکل زیر در می آید:

 

بخش چهارم: Code behind

گام پنجم

فایل Gridview_demo.aspx.cs را باز کرده و کدهای زیر را در آن می نویسیم:

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Web;  
    using System.Web.UI;  
    using System.Web.UI.WebControls;  
    using System.Data;  
    using System.Data.SqlClient;  
      
    public partial class _Default : System.Web.UI.Page  
    {  
      
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");  
        protected void Page_Load(object sender, EventArgs e)  
        {  
            if (!Page.IsPostBack)  
            {  
                refreshdata();  
            }  
        }  
      
        public void refreshdata()  
        {  
      
             
            SqlCommand cmd = new SqlCommand("select * from tbl_data", con);  
            SqlDataAdapter sda = new SqlDataAdapter(cmd);  
            DataTable dt = new DataTable();  
            sda.Fill(dt);  
            GridView1.DataSource = dt;  
            GridView1.DataBind();     
          
        }  
      
       protected void Button1_Click(object sender, EventArgs e)  
        {  
              
            foreach (GridViewRow gvrow in GridView1.Rows)  
            {  
                  
                CheckBox chck = gvrow.FindControl("CheckBox1") as CheckBox;  
                if (chck.Checked)  
                {  
                    var Label = gvrow.FindControl("Label1") as Label;  
      
                   SqlCommand cmd = new SqlCommand("delete from tbl_data where id=@id",con);  
                   cmd.Parameters.AddWithValue("id", int.Parse(Label.Text));  
                    con.Open();  
                    int id = cmd.ExecuteNonQuery();  
                    con.Close();  
                    refreshdata();  
      
                     
                }  
            }        
             
      
        }  
    }  

بخش پنجم: خروجی

فرض کنید می خواهیم، سطرهای انتخاب شده را حذف نماییم.

خروجی نهایی به شکل زیر در می آید:

 

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید