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)增加新的行的功能。