R: red">HeaderText="會員網頁" Text="檢視會員網頁" />
圖表2
圖表3
學會如何設定HyperLinkFIEld數據行所產生之超級鏈接的文字之後,接下來就是學習設定超級鏈接的目標URL。如果您要讓所有的超級鏈接都連結至相同的URL,請直接將NavigateUrl屬性設定成所需的URL。這樣的設定雖然最為單純,但是卻也非常不切實際,畢竟就算是連結至相同的網頁,也會每一筆數據列連結至相同網頁中的不同位置(也就是書簽 - BookMark)。因此,較為實用的應該是DataNavigateUrlFIElds屬性,原因很簡單,它允許您指定某一個字段中的URL作為連結的目的地(請注意此屬性的名稱是以s結尾,這是有玄機的,稍後會加以說明)。以圖表4所示者而言,表示以「網址」字段中的URL作為連結的目的地,如此一來,不同的超級鏈接將會擁有各自的URL。
圖表4
當然,談到了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屬性來構建之。這個時候,您必須將Name與MemberLevel字段同時指派給DataNavigateUrlFIElds屬性(Name與MemberLevel字段必須以逗號分隔),並利用DataNavigateUrlFormatString屬性來加以格式化即可。寫法如下所示:
<ASP:HyperLinkFIEld
DataNavigateUrlFIElds="Name, MemberLevel"
DataNavigateUrlFormatString="MemberPage.ASPx?Name={0}&MemberLevel={1}"