我们以往如果要在QueryString中带着含有中文或者特殊字符的参数值时,我们通常可以使用Server.UrlEncode来编码QueryString要传递的参数值,如:abc.aspx?name=Server.UrlEncode("name")。但是在GridView中,如果使用邦定元素HyperLinkFiled控件时便无法处理这样的情况,这个时候可以转换成Templete,然后把本来使用<asp:HyperLink>控件的地方改为传统HTML的超链接方式,通过Server.UrlEncode格式化参数值来传递。
如下范例:
<asp:TemplateField HeaderText="发件人">
<ItemTemplate>
<a href="client_show.aspx?addresserID=<%# Server.UrlEncode(eval_r("addresserID").ToString()) %>&date=<%# eval_r("date") %>">
<asp:Label ID="Label1" runat="server" Text='<%# Bind("addresseeID") %>'></asp:Label></a>
</ItemTemplate>
</asp:TemplateField>
<a href="client_show.aspx?addresserID=<%# Server.UrlEncode(eval_r("addresserID").ToString()) %>&date=<%# eval_r("date") %>">
Server.UrlEncode(eval_r("addresserID").ToString())
ToString()一定要加 eval_r("字段名")是object 因为Server.UrEncode(string)
如下范例:
<asp:TemplateField HeaderText="发件人">
<ItemTemplate>
<a href="client_show.aspx?addresserID=<%# Server.UrlEncode(eval_r("addresserID").ToString()) %>&date=<%# eval_r("date") %>">
<asp:Label ID="Label1" runat="server" Text='<%# Bind("addresseeID") %>'></asp:Label></a>
</ItemTemplate>
</asp:TemplateField>
<a href="client_show.aspx?addresserID=<%# Server.UrlEncode(eval_r("addresserID").ToString()) %>&date=<%# eval_r("date") %>">
Server.UrlEncode(eval_r("addresserID").ToString())
ToString()一定要加 eval_r("字段名")是object 因为Server.UrEncode(string)