又是ASP.NET查询Oracle数据库传参数的问题~~~高手请指点
我做的是一个查询的页面,根据查询条件从Oracle的数据表中查询数据字段然后把记录用Datagrid显示出来,然后把一个列做成模板列,把这一列的字段做成超链接,在点击这一个记录的时候把这一行的某些参数传到下个页面进行再次查询,在Html中写入要链接的页面,以及要传送的参数(参数是鼠标点击的该行的某几列参数)。
Html中模板列的设置以及传送参数的代码:
<asp:TemplateColumn HeaderText="局名">
<ItemTemplate>
<asp:HyperLink runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.equipmentname") %>'
NavigateUrl='<%#"AlarmSub.aspx?equipmentname="+DataBinder.Eval(Container.DataItem,"equipmentname")+"&alarminfo
="+DataBinder.Eval(Container.DataItem,"alarminfo")%>' Target="_blank">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
第二页中接收参数的语句:
string equipmentname = Request.QueryString["equipmentname"];
string alarminfo = Request.QueryString["alarminfo"];
现在我遇到的问题是,Oracle数据库中有的记录是一些字符(#,¥,%,&)以及字符和汉字组成的,在本页的DataGrid中显示是没有问题的,但是要传送到下个页面的时候就会出现乱码或者是缺少字符的情况。问了CSDN的朋友,他们说用这样的方法可以解决:HttpUtility.UrlEncode("parametername"),而下一个页面接收时需要解码HttpUtility.UrlDecode(Request.querystring["parametername"]),如果这样还是解决不了,需要用Replace来替换掉原来的符号,接收时再替换回来就可以解决了。但是我是刚开始学ASP.NET和C#,以前也没什么编程的经验,所以希望大家可以告诉我详细的解决步骤,比如:用这个方法DataGrid的超链接列要怎么设置,在什么地方写传递参数代码,
要怎么写,到下个页面要怎么接收参数,最好能有示例。我的传参是做个超级链接列,然后把某一行的几个参数传到下个页面。小弟在此谢过CSDN的各位朋友,万分感谢~~
对了,还有一个小问题请教一下,就是我做的查询页面有好几个,用链接传参进行再次查询,都是在本页打开并没有打开新窗口,然后问题是有的时候我按IE的后退键的时候回不了第一个页面,有的时候到了最后一个页面时都不能后退的了,这个是什么原因呢,是不是程序写的有问题?
问题点数:50、回复次数:5Top
1 楼jimu8130(火箭的未来在哪里?)回复于 2005-08-17 15:00:57 得分 10
用datagrid的话应该在itemcreated事件里面写代码
Top
2 楼jimu8130(火箭的未来在哪里?)回复于 2005-08-17 15:04:23 得分 40
如果是超连结 列的话那么先用findcontrol定位控件 ,然后把经过处理的url字符串给超链接的navigateurl属性Top
3 楼airapple5(MiChAeL)回复于 2005-08-17 17:01:22 得分 0
具体代码要怎么写呢?findcontrol怎么定位控件?url字符串要怎么处理呢?Top
4 楼airapple5(MiChAeL)回复于 2005-08-17 17:25:05 得分 0
NavigateUrl='<%#"AlarmSub.aspx?equipmentname="+DataBinder.Eval(Container.DataItem,"equipmentname")+"&alarminfo="+DataBinder.Eval(Container.DataItem,"alarminfo")%>' Target="_blank">
这样的传参数方式可否加入HttpUtility.UrlEncode的方法?Top
5 楼airapple5(MiChAeL)回复于 2005-08-17 17:26:10 得分 0
在itemcreated事件里面写代码 要怎么做呢?写什么代码进去?Top




