GridView里放了个
<asp:HyperLinkField DataNavigateUrlFields="编号,相册名" DataNavigateUrlFormatString="BrowserPicture.aspx?id={0}&album={1}"
DataTextFormatString="查看相册" HeaderText="查看相册" Text="查看相册" />BrowserPicture.aspx?id={0}&album={1},这个album里的值如果是中文的话,死活传不过去,如果在web.config那成GB2312的话,可以传过去。有什么办法不改config,能传值过去?
有人用url编码后传过去,可是 这个url 在HyperLinkField 里,怎么给他编码啊?
<asp:HyperLinkField DataNavigateUrlFields="编号,相册名" DataNavigateUrlFormatString="BrowserPicture.aspx?id={0}&album={1}"
DataTextFormatString="查看相册" HeaderText="查看相册" Text="查看相册" />BrowserPicture.aspx?id={0}&album={1},这个album里的值如果是中文的话,死活传不过去,如果在web.config那成GB2312的话,可以传过去。有什么办法不改config,能传值过去?
有人用url编码后传过去,可是 这个url 在HyperLinkField 里,怎么给他编码啊?
获取参数的页面用UrlDecode解码。
设置web.config文件。
<system.web>
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
</system.web> 你传递中文之前,将要传递的中文参数进行编码
string Name = "中文参数";
Response.Redirect("class.aspx?Name="+Server.UrlEncode(Name));
然后在接收时再进行解码。
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name));
设置下编码
UTF-8 GB2312 GBK ..
在GridView1_DataBound中找出来然后编码
{
foreach (GridViewRow row in this.GridView1.Rows)
{
foreach (TableCell cell in row.Cells)
{
if (cell.Controls[0] is HyperLink)
{
HyperLink hyperlink = (HyperLink)cell.Controls[0];
//下面设置编码
}
}
}
}
这样就可以找到,这只是个例子,还有很多条件没加,自己完善吧。