@人人都有一个梦想,每天都在圆这个梦...... <-- 记录学习中点滴,一步步成长 ^o^ -->

善用GridView控件的HyperLinkField数据行,有关DataNavigateUrlFields属性的用法【转】

http://www.cnblogs.com/liminzhang/archive/2006/12/14/591708.html

 

 

谈到了DataNavigateUrlFields属性,绝对不能忘了它的好兄弟 - DataNavigateUrlFormatString属性。DataNavigateUrlFormatString属性最主要的用途是用来格式化超级链接的URL。举例来说,假设您指派给DataNavigateUrlFields属性的字段并非内含完整的URL(例如:http://www.gotop.com.tw)而仅仅是内含网页档的名称(例如:AlexPage.aspx),此时如果希望超级链接的URL能够在网页档的名称前加上完整的位置路径的话,您可以采用以下的写法:

 

<asp:HyperLinkField DataNavigateUrlFields="个人网页"
                    DataNavigateUrlFormatString="~/Members/{0}"
                    HeaderText="个人网页" Text="检视个人网页" />

 

以上面的写法而言,表示以连结至根目录下之Members数据夹中的网页文件。又以下面的写法而言,则表示连结至一个绝对URL(也就是某网站)中之Members数据夹中的网页文件:

 

<asp:HyperLinkField
 DataNavigateUrlFields="个人网页"
 DataNavigateUrlFormatString="http://www.alexmember.com/Members/{0}"
 HeaderText="个人网页" Text="检视个人网页" />

 

谈到这里,相信大家对HyperLinkField数据行都已经能够运用自如,现在呢,我们要再回头研究研究DataNavigateUrlFields属性,为什么它的名称要特别以s结尾呢?原因很简单,因为您可以指派一个以上的字段名称给DataNavigateUrlFields属性。什么时候需要这样做呢?举例来说,当每一个超级链接的URL都是要连结至相同的网页但是却要传递查询字符串给该网页(类似如下所示),以便让目标网页根据不同的参数值来进行不同的处理时,就有需要这样做:

 

MemberPage.aspx?Name=章立民&MemberLevel=A 

 

欲使您的超级链接拥有类似如上的URL,就必须借助于DataNavigateUrlFields属性来构建之。这个时候,您必须将NameMemberLevel字段同时指派给DataNavigateUrlFields属性(NameMemberLevel字段必须以逗号分隔),并利用DataNavigateUrlFormatString属性来加以格式化即可。写法如下所示:

 

<asp:HyperLinkField
 DataNavigateUrlFields="Name, MemberLevel"
 DataNavigateUrlFormatString="MemberPage.aspx?Name={0}&MemberLevel={1}"
 HeaderText="会员网页" Text="检视会员网页" />

posted @ 2010-12-09 10:06  有你的城市  阅读(505)  评论(0编辑  收藏  举报