GridView控件是用于顯示和編輯數據的表格控件,它默認只能編輯一行數據,但可以通過編程實現同時編輯多行和動態增加新的行。
以下是一種實現方式:
1. 在GridView控件的屬性中將`AutoGenerateEditButton`設置為`true`,使得每一行都顯示編輯按鈕。
2. 通過在`RowEditing`事件中處理編輯操作,實現同時編輯多行。
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) {????GridView1.EditIndex?=?e.NewEditIndex;
????//重新綁定數據源,使得GridView顯示編輯狀態
????BindGridView(); } protected?void?GridView1_RowUpdating(object?sender,?GridViewUpdateEventArgs?e) {
????//獲取更新后的數據并保存到數據源
????GridViewRow?row?=?GridView1.Rows[e.RowIndex];
????//獲取需要修改的控件
????TextBox?txtName?=?(TextBox)row.FindControl(“txtName”);
????TextBox?txtAge?=?(TextBox)row.FindControl(“txtAge”);
????//更新數據源
????//…
????//取消編輯狀態
????GridView1.EditIndex?=?-1;
????//重新綁定數據源,使得GridView顯示非編輯狀態
????BindGridView(); } protected?void?GridView1_RowCancelingEdit(object?sender,?GridViewCancelEditEventArgs?e) {
????//取消編輯狀態
????GridView1.EditIndex?=?-1;
????//重新綁定數據源,使得GridView顯示非編輯狀態
????BindGridView(); }
3. 動態增加新的行需要在GridView外放置一個按鈕或者其他控件,點擊該控件時執行相應的代碼。
protected?void?btnAddRow_Click(object?sender,?EventArgs?e) {????//向數據源中添加新的數據行
????//…
????//重新綁定數據源,使得GridView顯示新增加的行
????BindGridView(); }
4. 在頁面加載時綁定GridView的數據源。
protected?void?Page_Load(object?sender,?EventArgs?e) {????if?(!IsPostBack)
????{
????????BindGridView();
????} } private?void?BindGridView() {
????//綁定GridView的數據源
????//… }
這樣就實現了GridView同時進行多行的編輯和動態增加新的行的功能。