GridView 编辑功能实现
2009年06月18日 星期四 12:37
GridView
实现功能要点: 1、 可激发回发事件的控件(比如:Button,LinkButtion,ImageButton等)的 CommandName 属性有几个特殊值: 设置成对应的名称 系统自动识别控件激发的事件分别为: 2、 在GridView 本身的事件中如果对 GridView 进行了 等操作 "后" 需要重新绑定数据源 <Columns> <asp:TemplateField> <ItemTemplate> //这里是项模版列中显示内容,如:<%# Eval("title")%> </ItemTemplate> <EditItemTemplate> //编辑状态下的内容,如果这个列中内容编辑模式下需要修改,那么就把修改的内容绑定到能接受用户输入的控件中,如: <asp:TextBox ID="txt_title" runat="server" Text='<%#Eval(" </EditItemTemplate> </asp:TemplateField> </Columns> 仿照上面的样式设计你的模版列 下面是编辑列 <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="lbut_edit" CommandName="Edit" runat="server" CausesValidation="false">编辑</asp:LinkButton> </ItemTemplate> <EditItemTemplate> <asp:Button ID="but_edit" runat="server" CommandName="Update" Text="更新" CausesValidation="false" /> <asp:Button ID="but_cancel" runat="server" CommandName="Cancel" Text="取消" CausesValidation="false" /> </EditItemTemplate> </asp:TemplateField> 可以看到 编辑列中的控件只不过是普通的linkbuttion 和 buttion 服务器控件 这样写就能出发编辑事件(GridView_RowEditing)吗? 是的,原因就在编辑按钮( 控件的 根据单词的意思 也能明白 他们分别代表的特殊的意义了吧 Delete 激发 RowDeleting 事件 在以上四个事件中 如果有对GridView 的操作 比如 在 RowEditing 事件中 GV_List.EditIndex = e.NewEditIndex; 设置编辑的行索引 ( 的操作后 需要重新进行GridView 的绑定:手写的绑定方法 就重新调用一遍,SqlDataSource、 在取消事件 当然后面不要忘了重新绑定 轮到数据更新了(RowUpdating)事件 在这里获取更新的行里的值、控件的值 调用更新方法 取值方式 int row = e.RowIndex; Label lab_id = (Label)GV_HelpTypeList.Rows[row].FindControl("lab_id"); TextBox text = (TextBox)GV_HelpTypeList.Rows[row].FindControl("txt_name"); 用 FindControl 获取到当前行里对应ID 的控件 调用后台的更新方法吧 更新完了 再写遍 更新成功 |