3

asp.net を使用して Web サイトを作成しています。ユーザーがログイン リンクをクリックすると、モーダル ダイアログが呼び出されます。

これは、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 の場合にメンバーシップ ページを読み込みます。

前もって感謝します。

4

1 に答える 1

1

コードビハインドでブール値をプロパティとして公開して、ページに直接書き込むことができますか

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

ページがレンダリングされると、プロパティは他の JavaScript 参照になります。

window.returnValue = 'thePropertyValue';

したがって、モーダル ダイアログの戻り値の型は、コード ビハインドの内容を反映します。

もう 1 つのバリエーションは、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 に答える