GridView操作一条记录的N种方式

结合GridView自身的特点,总结出操作(可以是删除、导入、更新等)单条记录的N种方式

首先,前台文件内容如下:

<asp:GridView ID="GVList" runat="server" ShowFooter="true" AutoGenerateColumns="False"
                BorderStyle
="Solid" BorderColor="#ffffff" GridLines="Horizontal" CellSpacing="1"
                Width
="100%" HorizontalAlign="NotSet" BorderWidth="0px" EnableViewState="true"
                DataKeyNames
="PKID">
                
<Columns>
                    
<asp:TemplateField>
                        
<HeaderStyle Width="60px" BackColor="#1C5E55" ForeColor="White" />
                        
<HeaderTemplate>
                           
</HeaderTemplate>
                        
<ItemTemplate>
                            
<asp:Label ID="PKID" Text='<%# DataBinder.Eval(Container.DataItem,"PKID")%>' runat="server"
                                Visible="true"  Width="10"/>
                                 
<asp:Label ID="FilePath" Text='<%# DataBinder.Eval(Container.DataItem,"FilePath")%>' runat="server"
                                Visible="true"  Width="700"/>
                        
</ItemTemplate>
                    
</asp:TemplateField>
                   
                    
<asp:TemplateField>
                        
<HeaderStyle Width="60px" />
                        
<HeaderTemplate>
                            操作
</HeaderTemplate>
                        
<ItemTemplate>
                            
<asp:LinkButton ID="cmdImport" ForeColor="Red" Text="操作" CssClass="ElementNavigation"
                                CausesValidation
="false" runat="server" CommandName="Import" OnClientClick="javascript:return confirm('确定操作已选择的数据吗?')" />
                        
</ItemTemplate>
                    
</asp:TemplateField><asp:CommandField DeleteText="操作" ShowDeleteButton="true" ButtonType="Button" HeaderStyle-Width="40px" />

                                   
</Columns>
            
</asp:GridView>

 其次:在后台Page_Load()事件是注册以下事件

Code

同时添加以下事件

 private void GVList_RowUpdating(object sender, GridViewUpdateEventArgs e)
        
{ }

现分别说明各事件的作用如下:

 第一种操作方式,用GVList_RowDeleting事件

Code

第二种方式,用GVList_RowCommand事件

Code

 第三种方式,在数据不大的情况下,可以用ViewState来缓存DataTable,此时可以直接操作DataTable的Row,只需找到Row的索引即可。

 第四种方式,可以用GridViewRow来找到索引,道理同上, 可以参考
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridviewrow.aspx

posted @ 2008-12-04 14:13  邀月  阅读(1571)  评论(1编辑  收藏  举报