注册 登录
编程论坛 ASP.NET技术论坛

怪????????????

guming 发布于 2007-09-28 19:22, 962 次点击

请大家帮我看一下这是怎么回事??谢谢了.


我从数据库中绑定一个字段的值,比如绑定得到的值是:"我是中国人",然后将这个值传到另外一个页面并在另外一个页面将传过来的值写到网页中,结果就剩下"我是中国",,少了最后一个字"人",无论我传什么值过去,都会少掉最后一个字!!!!但当我传两个字数的值时,比如"中国",就不会出现上面所说的问题.....请问这是怎么一回事啊????
相关代码如下:
<a href='<%# "fenbu/themap.aspx?soN="+ DataBinder.Eval(Container.DataItem,"name")%>' target="_blank" title="查看分布图">[查看分布图]</a> //其中,name是绑定到数据表的.整一句是放在DataList控件中.

然后在fenbu/themap.aspx中接收该值:代码如下:

ViewState["keyname"]=Request.QueryString["soN"]; //接值.
Response.Write(ViewState["keyname"]); //写值.但当字数超过2个时,写出来就会少掉最后一个字,小于2则不会...

[此贴子已经被作者于2007-9-28 19:24:07编辑过]

10 回复
#2
爱编程的小猪2007-09-29 11:06

奇怪的。
换种方式吧session也可以

#3
垃圾的沉默2007-09-29 12:35
a href='fenbu/themap.aspx?soN=<%# DataBinder.Eval(Container.DataItem,"name")%>' target="_blank"
title="查看分布图">[查看分布图]</a>

这样试试吧...我有很长的值都能传过去..

[此贴子已经被作者于2007-9-29 12:42:48编辑过]

#4
guming2007-09-29 15:38
接楼上的方法试了,结果一样.都会少了最后一个字
#5
垃圾的沉默2007-09-29 16:01
还是按二楼的方法吧..用Session吧.
#6
bygg2007-09-29 16:07
Server.UrlEncode(Request.QueryString["soN"]) 接收的时候加上这个

[此贴子已经被作者于2007-9-29 16:07:58编辑过]


#7
guming2007-09-29 19:57
还是不行...
怪的是,我在其它的页面中也使用了传值和接值的问题,我试了同样用中文值传过去,却不会有问题.........
#8
bygg2007-09-30 09:34
你这个页面用的编码不一样?
#9
guming2007-09-30 09:51

新情况:
有关页面间传值的问题.
是这样的:我从数据库中绑定到一个值,将此值传到另外一个页面.
问题是:
比如:当绑定的中文字数是偶数个时,传过去就不会有问题,可当绑定的中文字数是奇数个时,传过去那边接收到时就会少掉最后一个字,或最后一个字会成为乱码!!
如,传过去 "我是中国人",那边接收到的就是 "我是中国?"或者"我是中国",但当传过去"我是中国"时,那边接收到的就是完整的一个"我是中国",再当我传过去"我是中"时,接收到的又为"我是?"或者"我是"

[此贴子已经被作者于2007-9-30 9:53:01编辑过]

#10
guming2007-09-30 12:09

谢谢你们的参与,,问题已经解决了..

在页面间传递中文值时,传递前使用 Server.UrlEncode(string)进行编码,在接收时使用 Server.UrlDecode(string)进行解码即可..

#11
bygg2007-09-30 12:42
我就说嘛,我们都是这样用的都没有错的,解决了就好.
1