日期:2014-05-17  浏览次数:20478 次

HyperLinkField怎么设置属性
想从gridview里选择一列“名称”,传到下一个页面做参数,“名称”是字符串,不是数字。
<asp:HyperLinkField DataNavigateUrlFields="名称" DataNavigateUrlFormatString="Print_data.aspx?Name={0}" HeaderText="打印" Text="打印" />
然后在Print_data.aspx.cs中,有
string NO = Request.QueryString["Name"];
这样设置断点时,发现如果“名称”这一列中存的是数字,在Print_data.aspx.cs中,NO里就能够正确获得“名称”中的字符串,如果“名称”这一列中存入了汉字等,NO中就是“?”,不能获得正确的字符串
请问是什么问题,该怎么解决

------解决方案--------------------
在处理Resonse.QueryString函数汉字参数传递时,发生不能完整传递参数的具体值的错误,解决有两个方法。

方法一:需要重新设置Web.config中的encoding和全球化设置。

1、首行:<?xml version="1.0" encoding="utf-8" ?>
更改为:
<?xml version="1.0" encoding="GB2312" ?>
2、<!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
更改为:
<!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization
requestEncoding="GB2312"
responseEncoding="GB2312"
/>
方法二:使用Server.UrlEncode和Server.UrlDecode对汉字或者特殊字符进行编码和解码。