[ASP.NET]如何在GridView中UrlEncode HyperLinkField

  • 3060
  • 0
  • 2011-08-05

[ASP.NET]如何在GridView中UrlEncode HyperLinkField

在GridView的HyperLinkField欄位中

設定DataNavigateUrlFields=customer,name,territory,address5,fax

DataNavigateUrlFormatString=~/AddNewDetails.aspx?Customer={0}&Name={1}&Territory={2}&Address5={3}&Fax={4}

 

如果name的值有非數字字母格式,則傳遞url參數會造成AddNewDetails.aspx無法正確取得name的值

因此,需要將GridView的HyperLinkField欄位轉換為TemplateField欄位,並設定如下方式

<ItemTemplate>

<asp:HyperLink ID="hyperDetails" runat="server" NavigateUrl='<%# "AddNewDetails.aspx?Customer=" + Eval("Customer") + "&Name=" 
+ HttpUtility.UrlEncode(Eval("Name").ToString()) + "&Address5=" + Eval("Address5") + "&Fax=" + Eval("Fax") + "&Territory="
+ Eval("Territory") %>'
Text="Details" /> </ItemTemplate> </asp:TemplateField>