asp.net总结之比较DataGrid和GridView
2013-11-27 16:32
323 查看
最开始看asp.net视频的时候,由于各种原因不能联网,视频中讲到的DataGrid没有在工具箱中找到,也没在意,因为我添加GridView后,发现都能实现.所以一直认为是因为vs版本的原因只是名字不同.在后来上网查资料发现.这两个控件并不是同一个.下面就来比较一下他们吧:
先说一个问题,就是如何让DataGridZ可以在工具箱中显示: 工具——选择工具箱项——.net framework控件中选择datagrid 点击显示全部即可。 GridView是DataGrid的后继控件,他们的功能相似,都是在web页面中显示数据源中的数据,将数据源中的一行数据,显示在web页面输出表格中的一行。(1)关于两个列字段类型的比较:下图是DataGrid的可用字段
下图是GridView的可用字段:
下表示对Gridviw可用字段的解释:
(2)关于两个控件分页的设置:对于DataGrid的分页:
只要选中允许分页,就可以在下面选择想要的格式了,用起来比较方便。对于GridView的分页:需要在属性里设置:
将AllowPadding选择为true就可以自动分页,至于如何设置页码的格式还没发现,求指点!(3)除了以上两个不同点以外还有这两个控件都可以套用不同的格式使得界面更美观;GridView自带两个模板:①EmptyDataTemplate——空数据模板是GridView控件的属性之一。EmptyDataTemplate表示当记录为空时显示的定义内容②pagerTemplate 属性获取或设置 GridView控件中页导航行的自定义内容。 (4)实现相同界面不同的代码:如图的两个界面完全分不出是两个控件实现的吧?!那就看看代码有什么区别吧。。
代码分别如下:
这两个控件在有一段时间里让我分不清楚,总感觉是同一个,现在明白了。。如释重负呀。。不过说回来时代发展的真快,一个不留神就有跟不上时代的节奏。。。
先说一个问题,就是如何让DataGridZ可以在工具箱中显示: 工具——选择工具箱项——.net framework控件中选择datagrid 点击显示全部即可。 GridView是DataGrid的后继控件,他们的功能相似,都是在web页面中显示数据源中的数据,将数据源中的一行数据,显示在web页面输出表格中的一行。(1)关于两个列字段类型的比较:下图是DataGrid的可用字段
下图是GridView的可用字段:
下表示对Gridviw可用字段的解释:
列字段类型 | 说明 |
BoundField | 显示数据源中某个字段的值。这是 GridView控件的默认列类型。 |
ButtonField | 为 GridView控件中的每个项显示一个命令按钮。这使您可以创建一列自定义按钮控件,如“添加”按钮或“移除”按钮。 |
CheckBoxField | 为 GridView控件中的每一项显示一个复选框。此列字段类型通常用于显示具有布尔值的字段。 |
CommandField | 显示用来执行选择、编辑或删除操作的预定义命令按钮。 |
HyperLinkField | 将数据源中某个字段的值显示为超链接。此列字段类型允许您将另一个字段绑定到超链接的 URL。 |
ImageField | 为 GridView控件中的每一项显示一个图像。 |
TemplateField | 根据指定的模板为 GridView控件中的每一项显示用户定义的内容。此列字段类型允许您创建自定义的列字段。 |
只要选中允许分页,就可以在下面选择想要的格式了,用起来比较方便。对于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>
这两个控件在有一段时间里让我分不清楚,总感觉是同一个,现在明白了。。如释重负呀。。不过说回来时代发展的真快,一个不留神就有跟不上时代的节奏。。。
相关文章推荐
- 《ASP.NET1200例》未能找到元数据文件解决办法
- ASP.NET MVC3 Model验证总结及常用正则表达式
- asp.net 前台写JSON
- 建立一个方法的attribute,可以放在任意方法上,可以自动记录方法出错时的信息,就不用写try 。。cacth. 【注意】 不是在asp.net MVC下,是在普通三层结构下写的的特性。
- asp.net MVC3.0 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
- ASP.NET 4.0: 请求验证模式变化导致ValidateRequest=false失效
- Azure开发者任务之二:Cloud Service项目添加到ASP.Net Web中
- Asp.net安全架构之4:Brute force(爆破)
- Asp.net安全架构之3:CSRF(跨站点请求伪造)
- Asp.net安全架构之2:Session hijacking(会话劫持)
- Asp.net安全架构之1:xss(跨站脚本)
- ASP.NET性能优化之负载均衡
- ASP.NET性能优化之分布式Session
- ASP.NET性能优化之局部缓存
- ASP.NET性能优化之减少请求
- ASP.NET性能优化之让浏览器缓存动态网页
- ASP.NET性能优化之构建自定义文件缓存
- ASP.NET中的DES加密解密,可用于URL传参(转)
- ASP.NET MVC:窗体身份验证及角色权限管理示例
- asp.net mvc3.0通过窗体进行用户的验证(基于角色)