日期:2014-05-18  浏览次数:20744 次

datagrid列的url格式字符串奇怪问题?
添加了一个link列,url字段为UName,数据字段UName(数据库里的用户姓名),url格式字符串:usermodify.aspx?UName={0}     其实就是想点这列里这个link时跳到修改页面,随便把一个参数传过去..我平时都传的UId没发现什么问题..今天传UName了就发现问题了..usermodify.aspx?UName={0}这样子写最多只能传两个汉字,我设了断点查了一下,发现比如:UName="中国人"的情况下,程序里通过这个传过去的参数竟然变成了 "中国 "..少了一个字???这是怎么回事???是不是一定要弄成模板列再传...

------解决方案--------------------
老问题了,建议使用模板列

传递的页面使用 Server.UrlEncode编码
接受的页面使用 Server.UrlDecode解码
------解决方案--------------------
发送
<Columns>
<asp:TemplateField HeaderText= "UName " >
<ItemTemplate>
<a href= ' <%# "usermodify.aspx?UName= " + Server.UrlEncode(DataBinder.Eval(Container.DataItem, "UName ").ToString())%> '>
详细
</a>
</ItemTemplate>
</asp:TemplateField>
...

接受
String uName = Server.UrlDecode(Request.QueryString[ "UName "]);

------解决方案--------------------
<configuration>
<system.web>
<globalization requestEncoding= "GB2312 " responseEncoding= "GB2312 " uiCulture= "zh-CN " culture= "zh-CN " fileEncoding= "GB2312 " />
</system.web>
</configuration>