2007年10月4日 04:54 pm

怎样在 ASP.NET 2.0 的 GridView 控件里有条件地显示图像

ASP.net这个讨论基于自己一个ASP.net程序的需要: 怎么根据数据库的内容在一个 ASP.NET Gridview 控件里显示或不显示一个图标。比方说:我有一个表格要显示一些与会演讲人的信息,姓名、电子邮箱等;并且还要显示一个小别针的图标来显示这个演讲人已上传了一份演讲稿供下载。

基本内容的信息格式样:

Speakers Information
LAST NAME FIRST_NAME EMAIL SPEECH
Gates Bill bill.gates@microsoft.com bill_gates.doc Edit
Schmidt Eric eric.schmidt@google.com   Edit

从上可知,我们有两个演讲人其中一个已有了演讲稿,另一个没有。假设我有一个数据库在后台,其中有一个数据列叫 “speech” 里面含有演讲稿的文件名。一般来说,如果用 boundfield 的话象 <asp:BoundField DataField=”speech” HeaderText=”SPEECH” > 我们可以顺利得到在 gridview 控件里显示这个文件名的结果。

可是,我不想只显示这个文件名,我要的是当这个演讲人有讲稿在数据库里时,我只显示一个小图标,并将这个图标连向已上传的文件以供下载。在 ASP.10/1.1 里,我们一般是通过这个类似 gridview (dataview)的控件的 RowDataBound 事件来生成需要的HTML语言。比如,在 RowDataBound 里,我们需要循环每一个控件的每一行,并找到演讲稿的那个列,进行一定的文本比较判断,如果不是空的,则显示有连接的图标;若是空的,不显示任何文字。

到 ASP.net 2.0,事情变得更简单了。我们可以使用一个新的叫 HyperLinkField 列格式来实现上述所有的一切。主要是这个格式可以让你自由定义 你需要的链接数据来源及显示格式。 在我刚才举的例子里,那我就可以通过它来用数据库存的文件名加一定的服务器目录名来定义我的下载路径,并用那个图标来定义要显示的格式。

更好的就是,因为我的图标显示也是基于我的数据库speech列,不用任何判断代码我的程序也知道当没有演讲稿时,会自动不显示这个图标。

<asp:HyperLinkField DataNavigateUrlFields=”SPEECH” DataNavigateUrlFormatString=”~/docs/{0}” HeaderText=”SPEECH” DataTextField=”SPEECH” DataTextFormatString=”<img src=’images/attach.gif’ alt=’{0}’ border=’0′ />” />

对上面代码的说明:
DataNavigateUrlFields - 用来生成 hyperlink 连接的数据库单位
DataTextField - 用来生成显示内容的数据库单位
DataNavigateUrlFormatString - 这个属性可以帮助我使用其他信息来定义最后的连接路径。在例子中,我就加了一个专门的目录名在每个从数据库读出的文件名。这个 {0} 就是表示从 DataNavigateURLFields 得出的内容。
DataTextFormatString - 如同上面的 URL 格式字符,可以使用一些 HTML 标签代码来根据数据来显示漂亮的文字或其他格式。我在这个例子里用 <img src=’images/attach.gif’ alt=’{0}’ border=’0′ /> 来显示一个小巧、可爱的小别针,而不是就显示演讲稿的文件名。

好了,下面就是用 asp.net 2.0 来显示的演讲人信息表格。

Speakers Information
LAST NAME FIRST_NAME EMAIL SPEECH
Gates Bill bill.gates@microsoft.com Edit
Schmidt Eric eric.schmidt@google.com   Edit

嘿,不要问我为什么要显示这个图标, :-) 我只是用这个例子来显示 asp.net 2.0里的 HyperLink 的一些用途。 Enjoy programming!

英文原文: How to conditionally display image in Gridview based on data fields in ASP.NET 2.0

标签关键词: ,
相关网络话题:

相关文章

文章导航

【前一篇】: 如何将你的 WordPress 插件、主题国际化或本地化你喜欢的主题、插件 »
【后一篇】: 期待 Ubuntu 新版本 7.10 的推出 »

尚无评论

Trackback URI | Comments RSS

阅读完毕,有话要说?请多指教:

    • 赞助链接

    • 最新评论

    • 网站功能

    • 免责声明

      Blog Logo欢迎光临超凡工作室的中文网络日记【超凡博俗】之 IT 博客系列【数码人生】,由WebGuru[网络精灵]维护管理 Powered by SuperIT Web Studio Copyright ©2007 All rights reserved.

      该博客网站上所有文章除特别注明外都是由 WebGuru 个人著作,并不代表 WebGuru 所在公司及所从属的协会等的观点。如果,你认为本人文章所涉及的内容有版权侵犯或名誉损害之嫌,请及时写信通知,我会尽快审核并作出相应撤文行动。同样,如果你想要引用本博客站的有关文章,请保留全文并注明出处!

      Powered By
      SuperIT Web Studio