在GridView1中的其中一列是HyperLinkField对某汉字字段进行页面传值,但得到的汉字不全,例如要传的是“李小二”而传到另一页面是得到的是:“李小”。
请问如何在传值前对GridView1列先进行Server.UrlEncode("汉字")的编码?使之不缺少或乱码出现。
多谢!
在Web.config中用:
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />用HyperLinkField传值可以解决,
但页面另一按钮用:
Response.Write("<script>javascript:window.open('PrinterCard.aspx?id=" + TextBox1.Text.ToString() + "');</script>");
另一页面出现乱码,此时Server.UrlEncode(TextBox1.Text.ToString())无效。
不能两全其美。
我现需要的是:
传值前对GridView1列先进行Server.UrlEncode("汉字")的编码

解决方案 »

  1.   

    <%#  HttpUtility.UrlEncode(Eval("name").ToString()) %>
    HttpUtility.UrlDecode("")
      

  2.   

    不行,在GridView1中显示已是乱码了。
      

  3.   

    用这种方式
    GridView1中的其中一列是HyperLinkField中超链接:
    DataNavigateUrlFormatString="PrinterCard.aspx?id={0}"
    可否对id后面的{0}进行编码?
      

  4.   

    HttpUtility.UrlEncode(keyname, System.Text.Encoding.GetEncoding("GB2312"))
      

  5.   

    keyname 就是你要编码的字符串啊
      

  6.   

    //name是中文的姓名,以下这样也是在GridView1显示为乱码
    HttpUtility.UrlEncode(Eval("name").ToString(), System.Text.Encoding.GetEncoding("GB2312"))例如:陈大工 显示为:%b3%c2%b4%f3%b9%a4++++
      

  7.   

    你要在HyperLinkField的超链接属性DataNavigate中使用Server.UrlEncode编码,并不是在绑定显示的数据时候就编码
      

  8.   

    我就是不会对DataNavigateUrlFormatString="PrinterCard.aspx?id={0}" 
    中的{0}进行编码
      

  9.   

    传值要进行编码
    服务端要用:Server.UrlEncode(值);
    js要用:encodeURI(值)IE6 及以下都必须这样转换否则,中文就会异常
      

  10.   

    DataNavigateUrlFormatString="PrinterCard.aspx?id={0}" 
    中的这个{0}它的实际表达式是什么?我都搞不清楚,如何进行编码?
      

  11.   

    DataNavigateUrlFormatString="PrinterCard.aspx?id={0}"  DataNavigateUrlFields='<%#  HttpUtility.UrlEncode(Eval("name").ToString()) %> '
    试试
      

  12.   

    HyperLinkField和 DataNavigateUrlFields的使用方法
     <asp:HyperLinkField DataNavigateUrlFields="UserId" DataNavigateUrlFormatString="ShowUser.aspx?UserId={0}" 
            DataTextField="RealName" HeaderText="查看" /> DataNavigateUrlFormatString属性的值为"ShowUser.aspx?UserId={0}",而DataNavigateUrlFields属性的值为"UserId",也就是将来显示每行数据的时候都会将该行对应的“UserId”字段的值替换{0},类似于string.Format("ShowUser.aspx?UserId={0}",[“UserId”]的值)。 DataTextField="RealName"的意思是指定数据源中要绑定到 HyperLinkField 对象中显示的超链接标题的字段,也就是显示在页面上面的内容。