求救!!!!
可不可以用一个页面(aspx)上的按钮使这个页面上的一个嵌入式框架页面(aspx)返回结果?
我现在传入一个字符串得到dataset(再父页面上作的),我希望这个嵌入式框架内的repeater绑定到dataset,显示结果,可以吗?
我把字符串写到session,但两个页面的sessionID好像不一样!!!怎么办?
问题点数:70、回复次数:23Top
1 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 05:22:43 得分 0
Session是对与一个用户唯一的,Session["str"]=value;Top
2 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 05:33:20 得分 0
你是想利用父页的dataset绑定到子页的reapter吗?Top
3 楼hq1305018(跃强)回复于 2003-08-04 08:18:23 得分 0
把问题再说清楚一些。Top
4 楼stevegates()回复于 2003-08-04 13:12:27 得分 0
DataSet是通过调用数据层的一个方法得到的,这个方法接受一个String来执行搜索,而String是由父页上的TextBox由用户输入的,我希望子页得到这个String,再调用方法来得到DataSet.
谢谢。Top
5 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 13:57:36 得分 0
思路是,用户输入文本,点击了一个按钮(不要设成服务器控件)之后,让iframe子页重新载入,在子页里面获取这个传过来的url参数,绑定到reapter,
function dd(strValue)
{
youriframe.document.location="子页url"+"?str="+strValue;
}
<input id="t" name="t" value="clickme" onclick="dd(document.form1.textbox1.value)">
<asp:TextBox id="textbox1" runat="server">
document.form1.textbox1.value是可行的,因为asp:TextBox经过处理之后,会把textbox编程input
最后有一点建议,如果你的父页不进行什么特殊的要求的话,建议取消form的runat="server"属性Top
6 楼stevegates()回复于 2003-08-04 14:10:49 得分 0
我用imagebutton可以吗?怎么改呢?
另外有个问题,子页怎么得到URL里的str?我指在codebehind里。Top
7 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 14:13:32 得分 0
获得url参数可以这样:
Request.Params["str"]Top
8 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 14:20:31 得分 0
<asp:ImageButton ID="o" Runat="server" ImageUrl="/banner.gif"></asp:ImageButton>
在后台给这个事件添加一个onclick事件:
o.Attributes["onclick"]="dd()";Top
9 楼stevegates()回复于 2003-08-04 14:22:01 得分 0
ImageButton可不可以用呢?
谢谢了。Top
10 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 14:28:46 得分 0
我不敢肯定,
你要注意的就是ImageButton是服务器控件,
点击了之后会执行dd()这个函数,之后会回送,页面重新载入,iframe的src值给初始化,
在dd()里面改变的值又没了,
你可以试试,不行再改:)Top
11 楼stevegates()回复于 2003-08-04 14:32:10 得分 0
我在想,可不可以用request.params.add()来修改子页的URL?
谢谢。Top
12 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 14:35:35 得分 0
不能,你只能修改iframe的src,方法上面提到过:
youriframe.document.location="子页url"+"?str="+strValue;
Top
13 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 14:37:19 得分 0
request.params是一个数组(或者是一个ArrayList),你对他调用add方法
只会往这个数组里面添加一个数据,怎么会影响到子页的url呢?Top
14 楼stevegates()回复于 2003-08-04 14:41:02 得分 0
我发现IFRAME可以当作服务器控件运行,这样应该可以在Attributes里改变它的str了,对吗?
谢谢。Top
15 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 14:44:41 得分 0
只要strValue变,str也会变,
str是src之误?
--
试试,光想是没有用的Top
16 楼stevegates()回复于 2003-08-04 14:46:49 得分 0
SearchIFRAME.Attributes.Add("str",strDirURL +@"/SearchResult.aspx"+"?str="+strValue);
可以吗?Top
17 楼stevegates()回复于 2003-08-04 14:48:50 得分 0
错了错了,是srcTop
18 楼stevegates()回复于 2003-08-04 14:55:47 得分 0
请问怎么变更src的值?
Attributes.XXX()
有吗?
谢谢了。Top
19 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 14:57:17 得分 0
不行的吧,Attributes应该是只对asp:button这样又asp前缀的控件有效
Top
20 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 15:01:00 得分 0
实现相同的功能用服务器端写javascript的方法:
Response.Write("<script language='javascript'>SearchIFRAME.src='"+strDirURL +@"/SearchResult.aspx"+"?str="+strValue+"';</script>");
Top
21 楼stevegates()回复于 2003-08-04 15:12:53 得分 0
我遇到一个奇怪的问题
SearchResultSet != null(这个DataSet通过传入需str的方法获得的)是true,是不是说明成功了呢?
但是ResultRepeater.DataBind();却说“不包含任何数据源”(确实应该没有返回的行),这是什么问题?Top
22 楼shixueli(我们总是不能随心所欲)回复于 2003-08-04 15:24:31 得分 70
只要进行了初始化:DataSet SearchResultSet=new DataSet();
SearchResultSet就不会等于null,但是不等于就有数据,
要判断的话是:
SearchResultSet.Tables.Count==0如果为真,就是没有数据了Top
23 楼stevegates()回复于 2003-08-04 15:34:58 得分 0
谢谢你,你给我启发很大。Top




