一直以来,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事件。
演示: