固然,談到了DataNavigateUrlFields屬性,絕對不能忘了它的好兄弟 - DataNavigateUrlFormatString屬性。DataNavigateUrlFormatString屬性最主要的用途是用來格式化超級連接的URL。舉例來講,假設您指派給DataNavigateUrlFields屬性的字段並不是內含完整的URL(例如:[url]http://www.gotop.com.tw[/url])而僅僅是內含網頁檔的名稱(例如: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屬性來構建之。這個時候,您必須將Name與MemberLevel字段同時指派給DataNavigateUrlFields屬性(Name與MemberLevel字段必須以逗號分隔),並利用DataNavigateUrlFormatString屬性來加以格式化便可。寫法以下所示:
<asp:HyperLinkField
DataNavigateUrlFields="Name, MemberLevel"
DataNavigateUrlFormatString="MemberPage.aspx?Name={0}&MemberLevel={1}"
HeaderText="會員網頁" Text="檢視會員網頁" />