ASP.NET中父子窗口传值后,怎么把子窗口关闭,只留下原来的父窗口

每个窗口都只有一个button控件和textbox控件主窗口Open1.axps中的js代码<scripttype="text/javascript"language="... 每个窗口都只有一个button控件和textbox控件
主窗口Open1.axps中的js代码
<script type ="text/javascript" language = "javascript">
function OpenOvertimeDlog(frmWin, width, height) {
var me;
var action;
action = frmWin;
// 把父页面窗口对象当作参数传递到对话框中,以便对话框操纵父页自动刷新。
me = "Open1.aspx?action=" + action + "";
// 显示对话框。
window.showModalDialog(me, null, 'dialogWidth=' + width + 'px;dialogHeight=' + height + 'px;help:no;status:no')
}
</script>
主窗口cs中的代码
protected void Button1_Click(object sender, EventArgs e)
{
this.Button1.Attributes.Add("onclick","javascript:OpenOvertimeDlog('add',540,400)");
}
子窗口Open2.axps.cs中代码
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(" <script> opener.document.getElementById( 'TextBox1 ').value= ' " + TextBox1.Text + " ';window.close(); </script> ");
}
展开
 我来答
huang860105
推荐于2016-09-28
知道答主
回答量:23
采纳率:0%
帮助的人:27.9万
展开全部
我来告诉你怎么做吧,不过事先告诉你这种方式叫做模态窗口,还有一种叫做非模态窗口,至于什么意思你可以去查一下网上资料一大堆,还有就是模态窗口只在IE内核的浏览器中有效,所以使用的时候需要谨慎选择,至少现在我不用了,至于该不该用你自己掌握,不多说了来帮你解决问题。
主窗口
<script type ="text/javascript">
function OpenOvertimeDlog(frmWin, width, height)
{
var me;
var action;
var obj = form1;//将form作为对象传递给新窗口(这句话是新加的)
action = frmWin;// 把父页面窗口对象当作参数传递到对话框中,以便对话框操纵父页自动刷新。
me = "Default2.aspx?action=" + action + "";// 显示对话框。
window.showModalDialog(me, obj, 'dialogWidth=' + width + 'px;dialogHeight=' + height + 'px;help:no;status:no')
}
</script>

子窗体
<script type="text/javascript">
function send()
{
var myObj=window.dialogArguments;//接收父窗体的Form表单对象
myObj.TextBox1.value=document.getElementById('TextBox1').value;
window.close();
}
</script>
子窗体中不用服务器控件来输出也可以实现数据的传递
<input id="TextBox1" type="text" />
<input id="Button1" type="button" value="button" onclick="send()"/>

我已经测试过,如果有问题来找我。
我爱买枣
2011-12-03 · 超过10用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:21.5万
展开全部
是不是可以这样思考一下,假如,登录页面是个子窗体,有一个txtUserName文本框,还有一个
txtPassword的密码框,在下面有一个btnSubmit的提交按钮,当点击这个按钮时,把username和
password传给父窗体,设置按钮btnSubmit的postbackurl属性,即选择需要把值发送的页面,然后,在btnSubmit的click事件中写下如下代码:Response.redirect(index.aspx?uid=username&&pwd=password);
这样,就把你想放送的数据传送指定的页面。
不好意思,恕我直言,你的思路太复杂,你没有领会asp.net页面传值的精髓。
上面是我的思路,好的话可以参考一下,希望能给你帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
穷得被电信歧视
2011-12-03 · 超过10用户采纳过TA的回答
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:120万
展开全部
Response.Write(" <script> opener.document.getElementById( 'TextBox1 ').value= ' " + TextBox1.Text + " ';this.window.close(); </script> ");


Response.Write(" <script> opener.document.getElementById( 'TextBox1 ').value= ' " + TextBox1.Text + " ';this.document.close(); </script> ");
更多追问追答
追问
这种方法,我都试过,行不通
追答
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "info", "opener.document.getElementById( 'TextBox1 ').value= ' " + TextBox1.Text + " ';this.document.close();", true);

刚开始没注意到, Response.Write 会把HTML符号转义的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式