【问题标题】:How to pass value from modal dialog to parent page如何将值从模式对话框传递到父页面
【发布时间】:2013-06-12 14:11:13
【问题描述】:

我正在使用 asp.net 创建一个网站。如果用户单击登录链接,我将调用模式对话框。

这是我的 showModalDialog 脚本。

<li><a onclick="popup()"href="#">LOGIN</a></li>


 <script type="text/javascript">
 function popup() {
     var style = 'dialogWidth:350px;dialogHeight:100px;dialogleft:200px;dialogtop:200px;status:no;help:no;';
     var respond = window.showModalDialog("login.aspx", this, '', style);

 }

登录页面由用户名和密码的文本框和登录按钮的按钮组成。检查数据库中的用户名和密码后,我的问题是如何使用后面的代码(.cs)将值从弹出页面传递到父页面(布尔和字符串数据类型)。如果可能在将值传递给父页面后,如果 boolean = true,它将加载会员页面。

提前致谢。

【问题讨论】:

  • 你的意思是要通过var响应cs?
  • 不,我在登录页面有一个按钮,我希望所有代码都来自 .cs,并将值传递给 var respond。
  • 很抱歉,我很难理解你想要什么。
  • 你能把对话的结果传到你的​​javascript吗?

标签: asp.net popup modal-dialog


【解决方案1】:

您能否将后面代码中的布尔值作为属性公开,然后您可以直接将其写入页面,即

window.returnValue = '<%=MyPublicProperty%>;'

当页面被渲染时,该属性将只是任何其他 javascript 引用,即

window.returnValue = 'thePropertyValue';

所以模态对话框的返回类型将反映后面代码中的内容

另一种变体是使用ClientScript 对象将变量背后的代码写入标记,以便客户端可以从模式对话框返回

ClientScript.RegisterClientScriptBlock(this.GetType(), "example", 
string.Format("var codeBehindProperty = '{0}';", MyPublicProperty), true);

希望这是有道理的

编辑

要检索该信息,它应该是 showModalDialog 调用的返回值。所以在你的例子中

 var respond = window.showModalDialog("login.aspx", this, '', style);

变量respond 将包含codeBehindProperty。如果您要单步执行代码,则在打开模式时执行将在showModalDialog 处暂停。当它关闭时,继续执行,然后返回值在父页面中可用。

【讨论】:

  • 感谢您的帮助。我现在的问题是单击按钮后,值将传递给父页面,但我如何在我的页面中使用它(如何检索/捕获数据)?
猜你喜欢
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多