现在的位置: 首页 > 综合 > 正文

asp.net总结之比较DataGrid和GridView

2014年03月06日 ⁄ 综合 ⁄ 共 3304字 ⁄ 字号 评论关闭


           最开始看asp.net视频的时候,由于各种原因不能联网,视频中讲到的DataGrid没有在工具箱中找到,也没在意,因为我添加GridView,发现都能实现.所以一直认为是因为vs版本的原因只是名字不同.在后来上网查资料发现.这两个控件并不是同一个.下面就来比较一下他们吧:

先说一个问题,就是如何让DataGridZ可以在工具箱中显示:

           工具——选择工具箱项——.net framework控件中选择datagrid 点击显示全部即可。 

           GridViewDataGrid的后继控件,他们的功能相似,都是在web页面中显示数据源中的数据,将数据源中的一行数据,显示在web页面输出表格中的一行。

1)关于两个列字段类型的比较:

下图是DataGrid的可用字段

下图是GridView的可用字段:

下表示对Gridviw可用字段的解释:

列字段类型

说明

BoundField

显示数据源中某个字段的值。这是 GridView控件的默认列类型。

ButtonField

 GridView控件中的每个项显示一个命令按钮。这使您可以创建一列自定义按钮控件,如“添加”按钮或“移除”按钮。

CheckBoxField

 GridView控件中的每一项显示一个复选框。此列字段类型通常用于显示具有布尔值的字段。

CommandField

显示用来执行选择、编辑或删除操作的预定义命令按钮。

HyperLinkField

将数据源中某个字段的值显示为超链接。此列字段类型允许您将另一个字段绑定到超链接的 URL

ImageField

 GridView控件中的每一项显示一个图像。

TemplateField

根据指定的模板为 GridView控件中的每一项显示用户定义的内容。此列字段类型允许您创建自定义的列字段。

 

2)关于两个控件分页的设置:

对于DataGrid的分页:

 只要选中允许分页,就可以在下面选择想要的格式了,用起来比较方便。

对于GridView的分页:

需要在属性里设置:

AllowPadding选择为true就可以自动分页,至于如何设置页码的格式还没发现,求指点!

3)除了以上两个不同点以外还有这两个控件都可以套用不同的格式使得界面更美观;GridView自带两个模板:①EmptyDataTemplate——空数据模板是GridView控件的属性之一。EmptyDataTemplate表示当记录为空时显示的定义内容pagerTemplate 属性

获取或设置 GridView控件中页导航行的自定义内容。

 

4)实现相同界面不同的代码:

如图的两个界面完全分不出是两个控件实现的吧?!那就看看代码有什么区别吧。。

   代码分别如下:

        

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        Width="100%" OnRowEditing="GridView1_RowEditing" 
        OnRowCancelingEdit="GridView1_RowCancelingEdit" 
        OnRowUpdating="GridView1_RowUpdating" DataKeyNames="cat_id" 
        OnRowDeleting="GridView1_RowDeleting" CellPadding="4" ForeColor="#333333" 
        GridLines="None">
           <AlternatingRowStyle BackColor="White" />
           <Columns>
           <asp:BoundField DataField="cat_tag" HeaderText="分类名称" />                                        
               <asp:BoundField DataField="rec_dd" HeaderText="创建日期" />         
               <asp:CommandField ShowEditButton="True" />
                <asp:CommandField ShowDeleteButton="True" />
           </Columns>
           <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
           <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
           <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
           <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
           <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
           <SortedAscendingCellStyle BackColor="#FDF5AC" />
           <SortedAscendingHeaderStyle BackColor="#4D0000" />
           <SortedDescendingCellStyle BackColor="#FCF6C0" />
           <SortedDescendingHeaderStyle BackColor="#820000" />
       </asp:GridView>

       <asp:DataGrid ID="DataGrid1" runat ="server" AutoGenerateColumns="False" 
        Width="100%" OnCancelCommand="DataGrid1_CancelCommand" 
        OnEditCommand="DataGrid1_EditCommand" OnUpdateCommand="DataGrid1_UpdateCommand" 
        DataKeyField="cat_id" OnDeleteCommand="DataGrid1_DeleteCommand" CellPadding="4" 
        ForeColor="#333333" GridLines="None" >
           <AlternatingItemStyle BackColor="White" />
       <Columns>
           <asp:BoundColumn DataField="cat_tag" HeaderText="分类名称"></asp:BoundColumn>
            <asp:BoundColumn DataField="rec_dd" HeaderText="创建日期" ></asp:BoundColumn>
          <asp:EditCommandColumn CancelText="取消" EditText="编辑" UpdateText="更新"></asp:EditCommandColumn>
           <asp:ButtonColumn CommandName="Delete" Text="删除"></asp:ButtonColumn>
       </Columns>

           <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
           <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
           <ItemStyle BackColor="#FFFBD6" ForeColor="#333333" />
           <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
           <SelectedItemStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />

   </asp:DataGrid>

   这两个控件在有一段时间里让我分不清楚,总感觉是同一个,现在明白了。。如释重负呀。。不过说回来时代发展的真快,一个不留神就有跟不上时代的节奏。。。

抱歉!评论已关闭.