ASP.NET 弹出对话框和页面之间传递值的经验总结二【子回主】(转)

, 在新的页面上得到一个或多个值后,传回父级页面?

这个问题在我看来,JavaScript是个不二之选,

在父级页面中

<head runat="server">中添加

<script type='text/javascript'>

function openWindow()  

{  

window.open('Popup.aspx','_blank','height=450,width=470,status=no,toolbar=no,menubar=no,scrollbars=no,location=no');

}

</script>

<form id="form1" runat="server">中添加

<div>

   <asp:TextBox ID="TB_subject" runat="server"></asp:TextBox>

   <asp:TextBox ID="TB_Infor" runat="server"></asp:TextBox>

   <p>

   <input type="button" value="传值并返回父窗口" name="button1" onclick="popup()" /></p>

</div>

当然也可以写在code,写法如下

Dim PopUpDialog As String

        PopUpDialog = "<script type='text/javascript'>window.open('Popup.aspx','_blank','height=450,width=470,status=no,toolbar=no,menubar=no,scrollbars=no,location=no');</script>"

        ScriptManager.RegisterStartupScript(Me, Me.GetType, "key", PopUpDialog, False)

PopUp页面当中

<head runat="server">中添加

<script type="text/javascript">

function popup()  

{  

      window.opener.document.getElementById("TB_subject").value=document.getElementById("TB_Name").value;

      window.opener.document.getElementById("TB_Info").value=document.getElementById("TB_Summary").value;

      window.close()    

     }

</script>

<form id="form1" runat="server">中添加

<div>

   <asp:TextBox ID="TB_Name" runat="server"></asp:TextBox>

   <asp:TextBox ID="TB_Summary" runat="server"></asp:TextBox>

   <p>

   <input type="button" value="传值并返回父窗口" name="button1" onclick="popup()" /></p>

</div>

之后在触发对象(input,button etc…)上添加onclick="popup()" 事件即可, 当然在ASP.NET中如果应用了VBC#Code这句话应当改为OnClientClick="popup()".

好了解释一下前面卖的关子,这里需要注意几个问题,

1.        window.opener.document.getElementById("TB_Name").value这句话虽然可以用window.opener.document.all["TB_Name"].value代替,但是它只对IE有效,firefox中或其他浏览器是没有结果的,因为事实上document没有all这个方法getElementByIdgetElementByName才是正解.

2.        如果使用了ASP.NET 2.0 AJAX, 并且把xhtml tag对象写入Code的时候,记得用ScriptManager.RegisterStartupScript(Me, Me.GetType, "key", PopUpDialog, False) 替代Response.Write(script); 因为在ScriptManager控件里不支持Response.Write()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值