接着,我们可以通过以下方式改进 DataGrid 的界面:只在前面展示信息的摘要,并在 DataGrid 中插入一些超链接,然后在点击这些链接时显示详细信息。清单B 展示了如何实现这一效果,图B 展示了相应的输出:
图B
在 DataGrid 中插入超链接
这里 DataGrid 只包含两列——第一列是 ID,第二列是名字。如果点击任何一个名字,就会调出另外一个 ASP.NET 脚本,显示被选项的所有详细信息。
在这个脚本中最重要的东西是 AutoGenerateColumns 属性。该属性如果设为 false,那么就可以保证 .NET 编译器不会根据表的字段自动产生 DataGrid 的列。
很明显的问题是,然后该怎样生成列?很简单,使用 <Columns> 元素,这一元素将围起需要显示的列的定义。
第一种列是 <asp:BoundColumn> 类型,该类型允许我们将 DataGrid 的一列绑定到数据库表的一个字段。所需的字段被赋予 <asp:BoundColumn> 元素的 DataField属性。
然后,<asp: HyperLinkColumn> 元素允许我们插入一个特殊列,在该列中有 DataGrid 每一行的一个链接。DataTextField属性控制列中要显示的表字段,DataNavigateFormatString属性控制超链接的 URL 目标(注意 {0} 格式用于变量填补),DataNavigateUrlField属性指定用于填补的数据库字段。
如果点击超级英雄(super hero)的名字,会进入 more.aspx 脚本,该脚本以 id 作为一个 GET 参数传递,然后从数据库中获取信息,并将信息显示在页面上。