出现了一个很奇怪的问题,不知道是哪里设置错了,还是怎么回事,我使用Server.UrlEncode() 编码一个字符串,出来的值竟然没有进行编码,查原因,那就叫个纠结啊,使用其他方法可以解决,但是小弟就像弄明白倒是是怎么回事,什么原因,求各位大侠,高手给予指导,谢谢,大家一起探讨一下,代码如下:
编码前,前提是在gridview中使用的哈。
protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["style"] = "Cursor:hand";
e.Row.Attributes.Add("onmouseover", "c=style.backgroundColor;style.backgroundColor='#add8e6'");
e.Row.Attributes.Add("onmouseout", "style.backgroundColor=c");
string sp_code = Grid.DataKeys[e.Row.RowIndex].Value.ToString();
string cal_url = String.Format("SupplierEdit.aspx?spCode={0}", Server.UrlEncode(sp_code));
e.Row.Attributes.Add("ondblclick", String.Format("document.location.href='{0}'", cal_url));
}
}
编码后网页地址参数:
Company/SupplierEdit.aspx?spCode=SP00001
然后我就郁闷了,求给位给个解释,分数就给少了哈,高手不会太在意豆豆的。谢啦哈。
Server.UrlEncode 这个只是对 URL中的特殊定符(中文,斜线,空格,冒号)编码,这里 SP00001 不是特殊字符,当然不会编码了
哦,谢谢,那就是我对这个方法理解错误了,灰常感谢.......大家都回答的很好,但是你第一个,豆豆给你了~!
看一下这个有没有帮助:
http://blog.csdn.net/rj042/article/details/5217699
如果不行的话,你可以采用对字符串加密的形式传递参数,在获取参数的时候进行解密就行了。。。
灰常感谢.......要实现功能方法确实很多,我就是想弄明白为什吗,结果是我对这个方法理解有误,感谢你们,豆豆给第一位了~!
你可以采取加密的方式 对你的参数加密 然后在解密使用 你用的那个 内置编码 只对 非 数字和字母进行编码所以你需要的话 得考虑换种方式实现了
你这个方法可行,豆豆给第一位了,谢谢参与,原来是我对此方法的理解错误~!加密也是一种好办法.....