溫馨提示×

GridView同時進行多行的編輯,可動態(tài)增加新的行

小億
111
2023-12-20 17:11:49
欄目: 編程語言

GridView控件是用于顯示和編輯數(shù)據(jù)的表格控件,它默認只能編輯一行數(shù)據(jù),但可以通過編程實現(xiàn)同時編輯多行和動態(tài)增加新的行。
以下是一種實現(xiàn)方式:
1. 在GridView控件的屬性中將`AutoGenerateEditButton`設(shè)置為`true`,使得每一行都顯示編輯按鈕。
2. 通過在`RowEditing`事件中處理編輯操作,實現(xiàn)同時編輯多行。

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{

????GridView1.EditIndex?=?e.NewEditIndex;

????//重新綁定數(shù)據(jù)源,使得GridView顯示編輯狀態(tài)

????BindGridView(); } protected?void?GridView1_RowUpdating(object?sender,?GridViewUpdateEventArgs?e) {

????//獲取更新后的數(shù)據(jù)并保存到數(shù)據(jù)源

????GridViewRow?row?=?GridView1.Rows[e.RowIndex];

????//獲取需要修改的控件

????TextBox?txtName?=?(TextBox)row.FindControl(“txtName”);

????TextBox?txtAge?=?(TextBox)row.FindControl(“txtAge”);

????//更新數(shù)據(jù)源

????//…

????//取消編輯狀態(tài)

????GridView1.EditIndex?=?-1;

????//重新綁定數(shù)據(jù)源,使得GridView顯示非編輯狀態(tài)

????BindGridView(); } protected?void?GridView1_RowCancelingEdit(object?sender,?GridViewCancelEditEventArgs?e) {

????//取消編輯狀態(tài)

????GridView1.EditIndex?=?-1;

????//重新綁定數(shù)據(jù)源,使得GridView顯示非編輯狀態(tài)

????BindGridView(); }

3. 動態(tài)增加新的行需要在GridView外放置一個按鈕或者其他控件,點擊該控件時執(zhí)行相應(yīng)的代碼。

protected?void?btnAddRow_Click(object?sender,?EventArgs?e)
{

????//向數(shù)據(jù)源中添加新的數(shù)據(jù)行

????//…

????//重新綁定數(shù)據(jù)源,使得GridView顯示新增加的行

????BindGridView(); }

4. 在頁面加載時綁定GridView的數(shù)據(jù)源。

protected?void?Page_Load(object?sender,?EventArgs?e)
{

????if?(!IsPostBack)

????{

????????BindGridView();

????} } private?void?BindGridView() {

????//綁定GridView的數(shù)據(jù)源

????//… }

這樣就實現(xiàn)了GridView同時進行多行的編輯和動態(tài)增加新的行的功能。

0