在微软的免费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语句为系统自动生成,没有进行更改。 
|