افزودن سطر به کنترل GridView با رویداد کلیک دکمه در سمت کاربر

در این مقاله نحوه دریافت مقادیر از textbox و ارسال آنها به کنترل gridview را همراه با ذخیره این اطلاعات در session شرح خواهیم داد, سورس پروژه نیز در ادامه مطلب ضمیمه شده است .

افزودن سطر  به کنترل GridView با رویداد کلیک دکمه در سمت کاربر

برای افزودن سطر به کنترل gridview و ذخیره آن در session مطابق زیر عمل میکنیم .

یک کنترل GridView به صفحه اضافه می کنیم .خاصیت AutoGenerateColumn را در حالت false قرار می دهیم . سپس سه boundField به آن اضافه میکنیم .(در این مثال با نام RollNo , Name , Class)


    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">  
        <columns>  
            <asp:BoundField HeaderText="RollNo" DataField="RollNo"/>  
            <asp:BoundField HeaderText="Name" DataField="Name"/>  
            <asp:BoundField HeaderText="Class" DataField="Class"/>  
        </columns>  
    </asp:GridView> 

سپس برای اینکه اطلاعات در یک جدول ثبت شود باید این جدول را نیز ایجاد کنیم .

DataTable GetTable()  
{  
    DataTable table = new DataTable();  
    table.Columns.Add("RollNo");  
    table.Columns.Add("Name");  
    table.Columns.Add("Class");  
    return table;  
}

در رویداد بارگزاری صفحه جدولی که ایجاد کرده ایم را به کنترل GridView متصل میکنیم .

protected void Page_Load(object sender, EventArgs e)  
{  
    DataTable dt = new DataTable();  
    dt = GetTable();  
    GridView1.DataSource = dt;  
    GridView1.DataBind();  
} 

در رویداد کلیک دکمه , یک سطر به به متغبر جدول اضافه می کنیم .سپس اطلاعات جدول را در session یا viewstate ذخیره میکنیم .

همچنین برای SESSION شرط می نویسیم که اگر خالی بود اطلاعات را از جدولی که به صورت پیش فرض ثبت کرده ابم دریافت کند

if (Session["table"] == null)  
        {  
            dt = GetTable();  
        }

در غیر اینصورت اطلاعات را از textbox هایی که در صفحه قرار داده ایم دریافت کند و در sesion قراردهد

 else  
        {  
            dt = (DataTable) Session["table"];  
        }  
        dt.Rows.Add(txtRollNo.Text, txtName.Text, txtClass.Text);  
        Session["table"] = dt;  
        GridView1.DataSource = dt;  
        GridView1.DataBind();  
        txtClass.Text = "";  
        txtName.Text = "";  
        txtRollNo.Text = "";  

لیست کامل کدهای مربوط به رویداد کلیک دکمه را می توانید در ادامه مشاهده کنید .


    protected void Button1_Click(object sender, EventArgs e)  
    {  
        try  
        {  
            if (Session["table"] == null)  
            {  
                dt = GetTable();  
            } else  
            {  
                dt = (DataTable) Session["table"];  
            }  
            dt.Rows.Add(txtRollNo.Text, txtName.Text, txtClass.Text);  
            Session["table"] = dt;  
            GridView1.DataSource = dt;  
            GridView1.DataBind();  
            txtClass.Text = "";  
            txtName.Text = "";  
            txtRollNo.Text = "";  
        } catch (Exception ex) {}  
    }  

 

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