一直以來,Insus.NET在實現GridView編輯時,均是在每筆記錄第一列或是最后一列放置編輯銨鈕,點擊編輯銨鈕之后,進行編輯模式。本博文是使用另外方式,即是點擊GridView記錄行任一位置,進入編輯模式。
先來看看GridView的Html樣子:
DataKeyNames="Fruit_nbr" --> 設置GridView主鍵,在更新時會用到。
OnRowDataBound="GridViewFruit_RowDataBound" --> 這個事件,為GridView編輯模式下,為DropDownList綁定數據。
OnRowEditing="GridViewFruit_RowEditing" --> 為GridView控件啟用編輯事件。
OnRowUpdating="GridViewFruit_RowUpdating" --> GridView控件更新事件
OnRowCancelingEdit="GridViewFruit_RowCancelingEdit" --> 在GridView編輯模式下,返回正常模式。
按照傳統方法,我們需要把下面的啟用,但現在我們需要把它comment out或是刪除,稍后我們可以為GridVeiw注冊點擊事件來替代它。
<ItemTemplate> <asp:Button ID="ButtonEdit" runat="server" Text="Edit" CommandName="Edit" /> </ItemTemplate>
現在,我們去.aspx.cs為GridView控件綁定數據以及寫相關事件的代碼, 先是數據綁定GridView控件。
在編輯模式中,某字段顯示呈現DropDownList可供選擇。
編輯事件:
在GridView控件的編輯模式,返回正常模式:
GridView控件的更新事件:
下面是注冊單擊事件,替代Edit銨鈕事件:
Override Render方法,foreach所有GridViewRow,判斷是否是DataRow行。
如果不是DataControlRowState.Edit的話,可以為記錄行添加onclick事件。
演示: