gridview ItemTemplate关于中文传值问题

本文介绍在ASP.NET的GridView控件中如何正确处理含有中文或特殊字符的URL参数,通过将HyperLinkField替换为模板字段并使用Server.UrlEncode进行编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们以往如果要在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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值