现在我们已经研究了如何使用样式以及如何设定datagrid控件的全局显示属性(格式),下面还需要研究一个主题:如何对每一个特定列设定样式和显示属性。
但是如何设定datagrid中列的显示属性?其实并不难,接着读你就知道了。
设定哪些列应该显示
缺省情况下datagrid在生成的html表格中为sql查询返回的每一列生成一个对应的列。但是在一些情况下仅希望在datagrid中显示这些列中的一部分列。例如,在我正在进行的示例中,通过调用sp_popularity存储过程显示了aspfaqs.com最受欢迎的10个问题。它包含faqid列,或许我并不希望显示该列。
如果不想在datagrid中显示数据库查询返回的所有列,必须显式地声明所有希望显示的列。第一步是将datagrid的autogeneratecolumns属性设为false。一旦执行完这个操作,就需要通过boundcolumn web控件设定需显示的列,如下所示:
|
对于每一个希望显示的列,需要通过一个包含datafield属性的<asp:boundcolumn … />标记来指定数据库中需要显示的列。所有这些boundcolumn标记必须包含在column标记内。(也可通过编程的方式指定这些绑定列,但是它的可读性差,并且需要很多代码!)请注意只有通过boundcolumn标记指定的列才会在datagrid中显示,你必须指定需要显示的列!
boundcolumn控件的优点在于它包含一些设定格式的属性,包括:
headertext — 设定列标题的文字。
footertext — 设定列尾的文字(记住若要在datagrid中显示页脚,应将showfooter设为true)。
headerstyle/footerstyle/itemstyle — 包含与datagrid样式相同的属性。对设定列居中、前景色、背景色等很有用。
dataformatstring — 设置格式命令。(参考下面的示例;参考文档以获得全部的格式化规范)