上回寫(xiě)的是網(wǎng)站制作C#基礎(chǔ)值數(shù)值轉(zhuǎn)換 這次也不再?gòu)U話了~我們?cè)俅螌W(xué)習(xí)asp.net的GridView 添加超鏈接的方法!
GridView 看似很死板,其實(shí)它的的功能很強(qiáng)大,只要我們耐心研究,都能滿足我們的需求的。今天要說(shuō)的是為其列添加超鏈接。 一種是使用 HyperLinkField
這很簡(jiǎn)單,通過(guò)可視化設(shè)計(jì),只要設(shè)計(jì)好超鏈接模板,就可以了,當(dāng)然,其擴(kuò)展性也不強(qiáng)。
將要使用的字段寫(xiě)在 DataNavigateUrlFields 中,多個(gè)字段用逗號(hào)隔開(kāi)。
將超鏈接模板寫(xiě)在 DataNavigateUrlFormatString 中,模板中要引用 DataNavigateUrlFields 的字段值時(shí),就用 {0}、{1}、{2}……分別表示第 1、2、3……個(gè)字段。
<asp:HyperLinkField DataNavigateUrlFields="vid,cid"
DataNavigateUrlFormatString="?vid={0}&cid={1}" Text="鏈接" />
超鏈接文字也是類似。
另外一種是在模板中使用
模板中使用也非常簡(jiǎn)單,只是要注意使用 HyperLink 這個(gè)服務(wù)器端控件不一定功能強(qiáng)大。
<asp:HyperLink runat="server" Text='<%# Eval("realName") %>' NavigateUrl='?uid=<%# Eval("uid")%>'></asp:HyperLink>
實(shí)際上,上面的代碼有問(wèn)題,Eval("realName") 由于直接放在屬性中,可以解析出來(lái),而 Eval("uid") 和一些文字混雜起放在屬性中,Eval("uid") 就解析不出來(lái),會(huì)直接按原樣輸出到客戶端。 解決方法很簡(jiǎn)單,就是不用服務(wù)器端控件,直接用 HTML 的 a 標(biāo)簽。
<a href="?uid=<%# Eval("uid")%>"><%# Eval("realName") %></a>