首页 >> VC.Net >> 正文
DataGrid Web控件深度历险(2) Part1-VC.NET
来源:Dotnet频道 作者:采集 时间:2008-3-31


  导言
  
  在第一部分我们研究了DataGrid的基本功能,它可在HTML表格中显示数据。在第一部分我么说明了将数据库内容绑定至DataGrid是非常简单的,我们所要做的就是通过SQL查询来生成一个DataReader对象,将DataGrid的DataSource属性设为这个DataReader对象,然后调用DataGrid对象的DataBind()方法。剩下的事情就是将DataGrid放置到HTML中,它可通过如下代码实现:
  
  <asp:datagrid runat="server" />
  就是这么简单。遗憾的是通过这种简单方法生成的DataGrid并不美观。生成的DataGrid仅仅是一个封装了DataReader中所有列和行的简单的HTML表格。
  
  我们希望做到的是仅显示DataReader中的部分列并且设定每一列的格式。并且希望设定诸如背景颜色、字体等可以应用到整个表格的格式。最后,如果能够为每一列加上自定义的标题就更好了。例如设定标题的背景色为不同的颜色或字体为粗体。在这部分我们将研究如何完成所有这些任务!(DataGrid可以做更多的事情,我们将在今后一系列文章中看到如何对数据库结果进行分页显示,允许用户对数据排序等。)
  
  设定DataGrid格式
  
  对于DataGrid我们有两种设定格式的方法。第一种方法是在服务器端代码中通过程序进行设定。例如为了将DataGrid的背景色设定为红色,可使用如下服务器端代码:
  
  <%@ Import Namespace="System.Drawing" %>
  <script runat="server">
  sub Page_Load(sender as Object, e as EventArgs)
  ...
  DataGridID.BackColor = Color.Red
  ...
  end sub
  </script>
  另一种设定显示属性的方法是在DataGrid Web控件的标记中进行设定。下面的代码和上面的代码效果是一样的:
  
  <asp:datagrid runat="server" BackColor="Red" />
  
  我个人喜欢后一种方法。我发现在Web控件的标记中设定显示属性比在服务器端代码中设定要简洁。(请注意,对于服务器端代码的方法,需要引入System.Drawing命名空间,才能通过Color.Red对颜色进行引用;对于在Web控件的标记中设定显示属性的方法,仅需写上BackColor="Red"。我觉得后一种方法更可读。)
  
  让我们看一下用于设定DataGrid格式的有用的属性:
  
  l    BackColor — 设定背景颜色。
  
  l    Font — 设定DataGrid的字体信息。字体信息包括使用何种字体、字号,是否粗体,斜体等。
  
  l    CellPadding — 设定HTML表格中单元格内的边距。
  
  l    CellSpacing — 设定HTML表格中单元格之间的间距。
  
  l    Width — 设定HTML表格的宽度(可以以像素、百分比等为单位)
  
  l    HorizontalAlign — 设定表格在页面上的对齐方式(左对齐、右对齐、居中、未设定)
  
  一个使用上述属性而使得表格变得漂亮的例子如下所示。请注意DataGrid的Font属性是一个对象,它指向了FontInfo类,FontInfo类包括Size, Name, Bold, Italic等属性。为了设定Font对象所指向类的属性,必须通过连字符(-)完成。这类似于VB.Net和C#语言中表示对象属性的点(.)。
  
  <asp:DataGrid runat="server" id="dgFAQs"
  BackColor="#eeeeee" Width="85%"
  HorizontalAlign="Center"
  Font-Bold="True" Font-Name="Verdana"
  Font-Size="10pt" />
  FAQID
  Description
  …
  DateEntered
  CatName
  
  144
  Where can I host my ASP Web site for free (similar to GeoCities or Tripod or any of the many other free Web site sites)?
  
  3/20/2001 2:53:45 AM
  Getting Started
  
  181
  How can I format numbers and date/times using ASP.NET? For example, I want to format a number as a currency.
  
  1/19/2002 3:12:07 PM
  ASP.NET
  
  …
  
  Databases, Errors
  
  是否印象深刻?通过几行文本,我们改变了DataGrid的外观,生成了一个居中、具有灰色和漂亮字体的HTML表格。
  
  通过样式发挥你的想象力
  
  DataGrid Web控件包含一些样式,你将发现通过样式改变DataGrid的外观非常有效。这些样式支持很多属性,包括BackColor、ForeColor、HorizontalAlign和 Width。(参考文档可获得更多信息)。DataGrid包括四类样式:
  
  l    HeaderStyle — 设定页眉的样式。(页眉指表格的最上面一行,它列出了每列的名称。要显示页眉,需将DataGrid的ShowHeader属性设为True(缺省为True) )
  
  l    FooterStyle —设定页脚的样式。(页脚指表格的最下面一行。要显示页脚,需将DataGrid的ShowFooter属性True(缺省为False))
  
  l    ItemStyle — 设定表格中每一行的样式。
  
  l    AlternatingItemStyle — 设定表格中交替行的样式。通过将ItemStyle和AlternatingItemStyle设为不同的值使得DataGrid便于阅读。(可参考下面的示例)
  
  和设定DataGrid的格式类似,样式可通过程序或DataGrid Web控件的标记进行设定。如上所述,我个人喜欢使用Web控件的标记并且将在示例中使用该方法。第一种方法与通过代码设置DataGrid的格式类似,通过在对象后面加一个点。即如果想设定HeaderStyle的BackColor,可在代码中通过HeaderStyle.BackColor=Color.Red实现。
  
  另一个方法是通过在Web 控件的标记中使用特别的样式块,如下所示:
  
  <asp:DataGrid runat="server">
  <HeaderStyle BackColor="Red" />
  </asp:DataGrid>
  两种方法均可行。我发现嵌入标记的方法便于阅读,特别是当你需要为众多样式设定众多属性时。下面的示例显示如何美化先前的示例:
  
  <asp:DataGrid runat="server" id="dgFAQs"
  BackColor="#eeeeee" Width="85%"
  HorizontalAlign="Center"
  Font-Name="Verdana"
  Font-Size="10pt">
  <HeaderStyle BackColor="Black" ForeColor="White"
  Font-Bold="True" HorizontalAlign="Center" />
  <AlternatingItemStyle BackColor="White" />
  </asp:datagrid>
  示例运行结果如下:
  
  FAQID
  Description
  ViewCount
  
  FAQCategoryID
  DateEntered
  
  144
  Where can I host my ASP Web site for free (similar to GeoCities or Tripod or any of the many other free Web site sites)?
  161319
  …
  20
  3/20/2001 2:53:45 AM
  
  181
  How can I format numbers and date/times using ASP.NET? For example, I want to format a number as a currency.
  124398
  
  22
  1/19/2002 3:12:07 PM
  
  115
  I am using Access and getting a 80004005 error (or a [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)' error) when trying to open a connection! How can I fix this problem?
  108377
  
  21
  1/17/2001 11:38:49 PM
  
  …
  
  现在我们已经研究了如何使用样式以及如何设定DataGrid控件的全局显示属性(格式),下面还需要研究一个主题:如何对每一个特定列设定样式和显示属性。我们将在本文第二部分讨论这项技术。
  
相关新闻
相关评论
 
评论表单加载中...
 
VC.Net文章

 在Visual C++应

 编辑:admin

 时间:2008-3-10


   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
最新文章
   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
总站搜索
搜索
 
热门文章
   oracle数据库文件中的导入\导出
   用Oracle10g列值掩码技术隐藏敏感数据
   VB程序中用ADO对象动态创建数据库和表-VB.NET
   用VB6写简单程序 让电骡自动关机-VB.NET
   使用.NET2.0编写COM组件供VB调用-VB.NET
   VB.NET:键盘控制焦点移动-VB.NET
   用VB.NET绘制GDI图形-VB.NET
   vb.net中应用 ArrayList 实例-VB.NET
 
推荐文章
ASP.NET中的状态管理-ASP.NET
VC、IE、ASP环境下打印、预备的完美解决方案
oracle数据库文件中的导入\导出
VB.NET中快速访问注册表技巧-VB.NET
在vb中实现超连接的方法!和直接发邮件-VB.NET
用VB做realplayer播放列表-VB.NET
在VB.NET中如何实现和利用SortedLists-VB.NET
利用VB.NET Stopwatch对象记录时间-VB.NET
成都古羌科技有限公司版权所有: Copyright@2007-2010 ,ALL Rights Reserved 蜀ICP备07017240号