数据网格样式应用指南

在Web开发中,数据网格(DataGrid)控件是展示数据的一种常用方式。然而,直接应用样式到DataGrid并不总是能达到预期效果,因为DataGrid在浏览器中的渲染方式。本文将介绍一些简单的技巧,帮助开始使用样式。

首先,为什么要使用样式呢?可以在Visual Studio .NET中使用自动格式化功能,但如果老板雇佣的“UI专家顾问”坚持要在行之间增加额外的间距,将不得不逐个编辑项目中的每个网格。使用样式可以让从一个地方控制所有网格的外观。

在DataGrid中,有几个地方可以很容易地分配样式,使用CssStyle属性。它们是:

  • asp:datagrid - 对应HTML table元素。可以使用这个样式来设置网格的一些全局属性,比如背景颜色或边框。
  • HeaderStyle - 控制标题行,但样式应用于HTML tr元素。有趣的是,ASP.NET将表格标题单元格渲染为td,而不是th。微软又一次滥用了Web标准!
  • ItemStyle - 控制每一项的格式。样式应用于奇数行的HTML tr元素。
  • AlternatingItemStyle - 控制交替(偶数)项的格式。同样应用于tr元素。
  • SelectedItemStyle - 应用于高亮行。
  • FooterStyle - 应用于页脚行,例如,汇总行。
  • PagerStyle - 应用于分页行。

在示例中,这样设置了DataGrid:

<asp:datagrid id="DataGrid1" runat="server" CssClass="Grid"> <HeaderStyle CssClass="GridHeader"></HeaderStyle> <ItemStyle CssClass="GridItem"></ItemStyle> <AlternatingItemStyle CssClass="GridAltItem"></AlternatingItemStyle> </asp:datagrid>

将CssStyle的Grid应用于asp:datagrid元素,并将各种其他样式应用于其他网格样式元素。在外部样式表中,使用了以下行,创建了一个1像素厚的实心棕褐色边框。

.Grid { border: solid 1px Tan; }

将样式类应用于整个网格还有其他好处 - 可以使用该类来引用网格的子元素,如下所示:

.Grid td { border: solid 3px #FFFFFF; margin: 3px 3px 3px 3px; font-family: Arial; padding: 5px 5px 5px 5px; text-align: center; }

上面的样式适用于网格中的所有单元格,因为它们都是td元素。它使所有文本都使用Arial字体并居中,创建了粗白网格线,并在单元格之间插入了一些填充和间距。

接下来,来格式化标题行。这相当简单,使用应用于元素的GridHeader样式。

.GridHeader { font-weight: bold; background-color: Tan; }

这在创建排序网格时效果不错。排序网格的标题行有超链接标签。这些超链接不采用到目前为止分配的样式。但可以通过以下方式解决:

.GridHeader a { text-decoration: none; color: LightGoldenrodYellow; padding: 0px 15px 0px 15px; }

上面的代码处理了超链接的颜色和样式。填充不是必需的,但用它来说明一些更高级的CSS,如下所示:

.GridHeader a:hover { text-decoration: underline; background: Tan url(images/spin.gif) no-repeat 0 100%; }

hover关键字用于表示鼠标移动到链接上时会发生什么。在例子中,将超链接下划线,并使其旁边出现一个小图像。(这就是为什么之前创建了15px的填充;这样图像就有地方放置了)。图像是一个旋转按钮,希望能向用户指示点击标题会做什么。

接下来,想要为网格行设置一些属性。在例子中,决定使行字体稍微小一些,以便在行中放入更多数据。

.GridItem, .GridAltItem { font-size: smaller; }

注意是如何将样式应用于正常行和交替行的。接下来,应用样式以区分交替行:

.GridItem { background-color: LightGoldenrodYellow; } .GridAltItem { background-color: PaleGoldenrod; }

这就完成了所有基础知识。

这里使用的样式已在IE6和Mozilla FireFox 0.91中进行了测试。它们将在不支持一些更高级功能(如悬停旋转按钮)的浏览器上优雅降级。可下载的代码包括多个样式表。在FireFox上,可以使用左下角的小图标切换样式。在IE中,需要编辑源代码来查看其他样式。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485