6

C# asp.net プロジェクトでブートストラップを使用しており、コード ビハインドからモーダル ポップアップを表示したいと考えています。

私のページヘッダーには、次のようなJavaScript関数があります:

function LoginFail() {
        $('#windowTitleDialog').modal('show');
    }

ボタンをクリックすると、次のようにJavaScriptを呼び出しています

ScriptManager.RegisterClientScriptBlock(this, typeof(System.Web.UI.Page), "LoginFail", "LoginFail();", true);

これはモーダルポップアップを表示しません。ただし、次のようなものを使用するとalert('login failed')、正常に動作します。

誰でもこれを手伝ってもらえますか?

4

5 に答える 5

14

デフォルトでは、Bootstrap JavaScript ファイルは body タグの終了直前に含まれます

    <script src="vendors/jquery-1.9.1.min.js"></script>
    <script src="bootstrap/js/bootstrap.min.js"></script>
    <script src="vendors/easypiechart/jquery.easy-pie-chart.js"></script>
    <script src="assets/scripts.js"></script>
 </body>

これらの JavaScript ファイルを head セクションの body タグの直前に取り込み、モーダル ポップアップを呼び出す小さな関数を作成しました。

<script src="vendors/jquery-1.9.1.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="vendors/easypiechart/jquery.easy-pie-chart.js"></script>
<script src="assets/scripts.js"></script>

<script type="text/javascript">
function openModal() {
    $('#myModal').modal('show');
}
</script>
</head>
<body>

次に、コード ビハインドからモーダル ポップアップを次のように呼び出すことができます。

protected void lbEdit_Click(object sender, EventArgs e) {   
  ScriptManager.RegisterStartupScript(this,this.GetType(),"Pop", "openModal();", true);
}
于 2013-09-22T18:08:41.297 に答える
5

これが私が解決した方法です:

スクリプト機能

<script type="text/javascript">
    function LoginFail() {
        $('#windowTitleDialog').modal();
    }        
</script>

ボタン宣言

<asp:Button ID="LaunchModal" runat="server" Text="Launch Modal" CssClass="btn" onclick="LaunchModal_Click"/>

属性 data-togle="modal" が設定されていないことに注意してください。

LaunchModal_Click イベントのサーバー側コードは次のとおりです。

ScriptManager.RegisterStartupScript(this, this.GetType(), "LaunchServerSide", "$(function() { LoginFail(); });", true);

これがお役に立てば幸いです。

于 2013-04-09T06:38:44.647 に答える
0

aspx ページでこれを行います。

<asp:Panel ID="MessagePanel" runat="server" CssClass="hide"  EnableViewState="false">
<div class="modal-header">
<asp:Button type="button" ID="btnClose" runat="server" data-dismiss="modal" Text="x" />
</div>
<div class="modal-body">
<h4>What's new in this version</h4>
... rest of bootstrap modal stuff....
</div>
</asp:Panel>

次に、page.load やボタン クリックなどのイベントでモーダル ポップアップを表示するコード ビハインドで、Panel の CssClass を変更するだけです。

MessagePanel.CssClass = "modal fade in"

js や ScriptManager は必要ありません。

于 2015-04-15T12:55:24.513 に答える
0

私は同じ問題を抱えており、オンラインで解決策を見つけようとしましたが、できませんでした。コードビハインドからあなたが言ったように、他のJavaScript関数を呼び出すことができますが、モーダルjs関数を追加するとモーダルが表示されません。

私の推測では、 modal.('show') 関数が呼び出されていないということです。これは、モーダル要素をクロムで検査すると、クラスがモーダル非表示フェードであり、モーダル非表示フェードインではなく、他の属性が同じままであるためです。

考えられる解決策は、これらの属性をコード ビハインドから変更することです。つまり、コード ビハインドから js が行うことを実行できます。最善の解決策ではない可能性がありますが、他に何をすべきかはわかりませんでした。これを行うことで、モーダルが背景が灰色で表示されるようになりましたが、効果を機能させることができませんでした。

于 2013-04-04T14:41:28.817 に答える
0

jQueryモーダルプラグインの1つを使用していると思います。その場合、プラグイン コードが呼び出された時点 (ページにレンダリングされた直後) にプラグイン コードが初期化されていないと思われます。プラグイン コードが実行された後、関数の呼び出しを延期する必要があります。ケースの実装は次のようになります。

ScriptManager.RegisterClientScriptBlock(this, typeof(System.Web.UI.Page), "LoginFail", "$(function() { LoginFail(); });", true);
于 2013-03-28T17:47:22.483 に答える