现有A、B两个页面,运行A页面,点击上面一个按钮,此时弹出B页面,再B页面上有多个checkBoxList,用户选择后,点击B页面上的确定按钮,B页面关闭,此时A页面显示刚才用户在B页面上选择的checkBoxList的文本。请问除了Session之外还有什么好方法?
解决方案 »
- 求助:出现错误:System.Threading.ThreadAbortException: 正在中止线程
- Jquery验证控件问题!!!在线等!!!急 急 急!!!!!
- 想在静态方法中使用服务器控件
- 你们第一次加载Entity framework(Context)并查询数据的时候要10秒吗?
- 如果链接指向一个客户端不认识的后缀,是不是就下载不了这个文件?
- 当sql查询出来有结果的时候,弹出一个提示框“不能删除”,然后后面的语句就终止了,这该怎么写?
- ListBox的滚动显示问题???
- asp.net中的menu控件,如何获取哪一个按钮被点击
- ms.net framework 1.1
- 一个奇怪的问题
- 自定义CheckBoxList控件的问题
- IE和Firefox在程序开发上的主要区别
window.open可通过window.opener操作父窗体
模式窗口可用returnValue
1搂 2楼 是一个意思.正解~
====================
您这个例子我看过了,我要把弹出的页面上所有选中的checkBoxlist的值都传到父页面上,是不是应该在frame.html里写代码呢?
如果不是请问那个frame有什么用?
var win = window.showModalDialog这句是不是应该写成多个呀
如果设置<base target="_self">那可以不用frame
比如取消选择rd2时,将str里的";rd2"替换成"";
接着就可以在WebForm2.aspx.cs中获取WebForm1的页面对象。
if(Context.Handler is WebForm1) //判断传递过来的是否WebForm1,因为可能会有多个传递对象。
{
WebForm1 f1=(WebForm1)Context.Handler; //通过Context.Handler来创建一个WebForm1的页面对象,返 回一个object
Response.Write("Hey,I get it with Context Handler "+((TextBox)f1.FindControl("TextBox1")).Text+"
");??
}
//最后通过调用WebForm1对象的FinControl()方法来查找WebForm1中名为"TextBox1"的一个文本控件,在此也可以换成其它的控件,不管查找的是哪一种控件,都必须将其强制转换为其类型,本示例中为TextBox,最后调用其属性Text,获取在TextBox1中的值,达到传值的效果。
这种方法同样很灵活,可以传递多个页面对象,而不是传递值,因此当获取到页面对象的时候就可以获取此页面对象中的某些控件的值或其它的数据。
(注:以上几种方法,除了Request.Form()这种传值方法使用的是HTML控件外,其它几种都是使用WEB控件) 2. 使用Application 对象变量
Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}
4. 使用Cookie对象变量
这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}