善用GridView控件的HyperLinkField數據行

善用GridView控件的HyperLinkField數據行
 
藉助於GridView控件的HyperLinkField數據行,咱們即可以在GridView控件中替每一筆數據列顯示出一個超級連接,並讓用戶輕易從新導向至特定的目標位置(特定網頁或網頁中的位置)。
 
在使用HyperLinkField數據行時,首先要考慮的就是超級連接上的文字。關於此點,可分爲下列兩種情況來講明:
 
q          若是您但願每一筆數據列的超級連接都顯示相同的固定文字,請將HyperLinkField數據行的Text屬性設定成所需的文字。圖表1所示者便是一例。
                                    圖表1
q          若是您但願使用字段的內容做爲每一筆數據列之超級連接的文字,請將HyperLinkField數據行的DataTextField屬性設定成該字段。圖表2所示者便是一例。

固然,最常與DataTextField屬性搭配使用的不外乎就是DataTextFormatString屬性。咱們常用DataTextFormatString屬性來格式化取自DataTextField屬性所指定之字段的數據值。圖表3所示者便是一例。
                                       圖表2
                                  圖表3
    學會如何設定HyperLinkField數據行所產生之超級連接的文字以後,接下來就是學習設定超級連接的目標URL。若是您要讓全部的超級連接都連結至相同的URL,請直接將NavigateUrl屬性設定成所需的URL。這樣的設定雖然最爲單純,可是卻也很是不切實際,畢竟就算是連結至相同的網頁,也會每一筆數據列連結至相同網頁中的不一樣位置(也就是書籤 BookMark)。所以,較爲實用的應該是DataNavigateUrlFields屬性,緣由很簡單,它容許您指定某一個字段中的URL做爲連結的目的地(請注意此屬性的名稱是以s結尾,這是有玄機的,稍後會加以說明)。以圖表4所示者而言,表示以「網址」字段中的URL做爲連結的目的地,如此一來,不一樣的超級連接將會擁有各自的URL
                             圖表4
固然,談到了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屬性來構建之。這個時候,您必須將NameMemberLevel字段同時指派給DataNavigateUrlFields屬性(NameMemberLevel字段必須以逗號分隔),並利用DataNavigateUrlFormatString屬性來加以格式化便可。寫法以下所示:
 
<asp:HyperLinkField
 DataNavigateUrlFields="Name, MemberLevel"
 DataNavigateUrlFormatString="MemberPage.aspx?Name={0}&MemberLevel={1}"
 HeaderText="會員網頁" Text="檢視會員網頁" />
相關文章
相關標籤/搜索