在微软的免费ASP.Net开发工具ASP.Net WebMatrix中我们可以轻松的在datagrid中使用模板列来对数据进行显示。
本例使用到SQL Server2000自带的pubs数据库。
首先,打开ASP.Net WebMatrix建立一个新文件,类型选择“DATA PAGES”中的“Simple Data Report”,然后切换到CODE视图,默认的数据库连接字符串为:
Dim ConnectionString As String ="server=(local);database=pubs;trusted_connection=true"
改为:
Dim ConnectionString As String ="server=(local);database=pubs;uid=sa;pwd=sa"
然后换回Design视图,选中datagrid,然后点击右边工具栏中的“属性生成器”(如图)
进入“属性生成器”之后选择列,将“运行时自动生成列”选项去掉,然后添加一个“超级链接列”到“选定的列”之中。在hyperlinkcolumn属性的“文本字段”中填入City(这是pubs数据库中的一个字段,这里我们拿它做演示),再点击下面的“将此列转换为模板列”。然后转向“常规”属性页,将“显示页眉”去掉。再转向“边框”属性页,将“网格线改为无”,点确定退出。接着进入“自动套用格式”属性框,移除自动套用格式,这样基本上从外观看不出datagrid的影子了。
这里我们假设是点击city而链接到list.aspx?city=城市名的页面,呵呵,有点像新闻的链接一样,其实原理都一样。
切换到HTML视图,开发工具已经帮我们生成了基本的模板代码:
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.city") %>' ></asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
要加入链接我们需要手工加入代码,再加入一些修饰效果:
<asp:TemplateColumn>
<ItemTemplate>
<img src="xxx.gif">
<asp:HyperLink runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.city") %>' NavigateUrl='<%# "list.aspx?city="& DataBinder.Eval(Container, "DataItem.city") %>' Target="_blank"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
这样的话,点击运行页面,已经可以看到效果。 (是不是看不出datagrid的原始风格了?)
本文只是介绍了ASP.Net WebMatrix的一方面使用方法,只要你想象更丰富一定可以通过模板列将datagrid改造的更加完美。
注:文中使用操作数据库的SQL语句为系统自动生成,没有进行更改。