3

まず第一に、私は一日中検索に費やしており、コードの何が問題なのか、なぜ機能しないのかを理解できないことを言及する必要があります...

コードで確認用のモーダル ダイアログが必要なので、この jQuery モーダル ダイアログを使用します: JQuery Confirm

私が必要とするのは、この機能を<asp:Button>...

私の問題は、ボタンをクリックするとダイアログがポップアップしますが、はい/いいえボタンが機能せず、両方ともダイアログが消えることです。

また、以下のコードを使用しますが、__doPostBack()何もしませんでしたが、alert('') のような単純な js コードを完全に実行します。

$("#complexConfirm").confirm({
     title: "Redirect confirmation",
     text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
     confirm: function (button) {
         __doPostBack('complexConfirm', 'OnClick');
     },
     cancel: function (button) {
         return false;
     },
     confirmButton: "Yes",
     cancelButton: "No"
});

検索すると、ダイアログの原因要素がフォーム要素の外にあるので、フォームに戻す必要がありますが、コードの下でどのように試してもうまくいきません

$("#editEventModal").parent().appendTo(jQuery("form:first"));

もう1つの問題は、ダイアログボックスなしでjavascriptイベントでポストバックしようとすることです。2つのボタンを使用してjavascriptを呼び出し、別のボタンを呼び出しますが、__doPostBackを使用するとページが更新されますが、コードのボタンイベントにはなりません-背後で、ボタンのonClickイベントを呼び出すいくつかの方法を試しましたが、ページを更新するだけで、butoonのOnClick Mehtodを呼び出しません!!!

ボタンの宣言は次のようになります。

<asp:Button ID="complexConfirm" ClientIDMode="Static" runat="server" OnClick="TestBTN_Click" Text="Test" />
<asp:Button ID="checkit" ClientIDMode="Static" runat="server" OnClientClick="__doPostBack('<%=complexConfirm.UniqueID%>', '');" Text="CHECK" />

この2つの問題はどうすればいいですか?

私はたくさん検索しましたが、解決策はどれもうまくいきませんでした!!!

どんな解決策でも感謝します、ありがとう。

4

1 に答える 1

1

asp:button の宣言を知らなくても、ここに私の推測があります。

IDではなく、ボタンの「名前」属性であるボタンのuniqueIDを使用する必要があります。

__doPostBack('<%=complexConfirm.UniqueID%>', '');

また、ボタンなので、実際に OnClick を指定する必要はありません

編集:私はあなたが達成しようとしていると思うことを示す実際の例を作成しました。必要に応じて、これを jQuery 確認に合わせて調整できます。

aspx:

<asp:Button ID="btnTest1" runat="server" Text="Test1" OnClick="btnTest1_Click" />

JavaScript:

<script>
    $('#<%=btnTest1.ClientID%>').confirm({
        text: "This is very dangerous, you shouldn't do it! Are you really really sure?",
        title: "Confirmation required",
        confirm: function (button) {
            // do something
            __doPostBack('<%= btnTest1.UniqueID%>', '');
        },
        cancel: function (button) {
            // do something
        },
        confirmButton: "Yes I am",
        cancelButton: "No",
        post: true
    });
</script>

コードビハインド:

protected void btnTest1_Click(object sender, EventArgs e)
{
    Response.Write("You clicked YES");
}

問題の一部は、イベント名にボタンの名前が付けられていなかったことだと思います。私があなただと思うautoEventWireupを使用している場合、一致する名前のイベントが見つからないため、イベントはトリガーされません。

そのため、最初にしたことは、StaticClientID を削除することでした。asp.net で生成された ID で jquery を引き続き使用できます。次にbtnTest1_Click、ボタンの名前がbtnTest1

ボタンが送信される前に確認するだけのように見えるので、なぜ他のボタンが必要なのかわかりません。

于 2014-07-30T20:03:56.000 に答える