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

提前致谢。

4

1 回答 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打开模式时执行将暂停。当它关闭时,继续执行,然后返回值在父页面中可用。

于 2013-06-12T15:06:42.887 回答