如何从模态对话框传递值给父页面

3

我正在使用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)将弹出页面的值传递给父页面(布尔型和字符串数据类型)。如果可能,在将值传递到父页面后,如果布尔值为true,则会加载会员页面。

提前致谢。


你的意思是想把变量“respond”传递给“cs”吗? - kostas ch.
不,我在登录页面有一个按钮,我希望所有的代码都来自.cs文件,并且值将传递给变量respond。 - MMakati
很抱歉,我很难理解你想要表达的意思。 - kostas ch.
你能将对话框的结果传递给JavaScript吗? - kostas ch.
1个回答

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 处。当它关闭后,执行继续并且返回值在父页面中可用。

谢谢您的帮助。我的问题是在点击按钮后,值将传递到父页面,但我该如何在我的页面中使用它(如何检索/捕获数据)? - MMakati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接