我自己写了一个用户控件,很多页面都用到它
其中有个button的click我用Server.Transfer到另一个页面
现在遇到3个问题
1。如何取得这个控件里面textbox的值?
2。新页面怎么判断是自己直接打开,还是其他页面Server.Transfer过来而打开的
3。如何取得Transfer来的页面的url?谢谢知道朋友能不吝赐教,万分感谢!
其中有个button的click我用Server.Transfer到另一个页面
现在遇到3个问题
1。如何取得这个控件里面textbox的值?
2。新页面怎么判断是自己直接打开,还是其他页面Server.Transfer过来而打开的
3。如何取得Transfer来的页面的url?谢谢知道朋友能不吝赐教,万分感谢!
public string A
{
get { return textbox.Text;}
set { textbox.Text = value;}
}
在调用这个用户控件的页面代码种声明这个控件,如此控件是myUC.ucTest;protectd myUC.ucTest UcTest;
然后可以通过: string a = UcTest.A; 来取得textbox的值2. 在新页面通过判断Request.UrlReferrer 是否存在 来得知它是通过别的页面打开还是直接打开的;
3. 如2,通过Request.UrlReferrer来取得之前的url
string Pre_Url = Request.ServerVariables("url"); //当前执行名,你处理一下取得文件名if (Pre_url == "1.aspx")
{
Response.write("直接打开");
}
else
{
Response.write("重定向打开");
}
比如Session["textBox"]=textBox.Text;
在另外一个页面
string s;
s=Session["textBox"].ToString();
我还是不很清楚如何取得用户控件,例如你的UcTest
我看网上的的文章取得前一个页面的方法是
WebForm1 oForm=(WebForm1)this.Context.Handler;
但我有多个页面用到UcTest
例如WebForm1 WebForm2 WebForm3
没有得到页面对象,又如何能得到页面里的控件对象呢?
一、比如:
this.RegisterStartupScript("Employee_StageItemDistribute","<script>window.showModalDialog('Employee_StageItemDistribute.aspx?userinfo="+appId+"','scrollbars=no;resizable=no;help=no;status:no')</script>");
相应的在Employee_StageItemDistribute.aspx页面得Page_Load()里面
string FromURL = Request.QueryString["userinfo"];
这样就可以取到。
二、一般而言,都是用Url参数的方式,但是Url有长度限制,而且如果是多参数得话,装配Url字符串就会让你头疼死掉。
从一个页面跳转的时候,不要用Response.Redirect,而应用Server.Transfer,然后再目标网页中使用Context.Handler,前一个网页的类是abc,后一个网页是dbc.aspx,在前一个网页abc中定义公开字段public string ccc;那么在abc中跳转的时候用Server.Transfer(dbc.aspx)在后一个网页使用((abc)Context.Handler).ccc 就可以取出相应的值了。
但是显然这样做还有一个问题,缺乏通用性。