2

ボタンがポストバックする前に、jqueryスタイルのyes|no確認ボックスをフックしようとしています。

何が起こるべきか

  • ユーザーが「いいえ」をクリック-ポストバックなし
  • ユーザーが「はい」をクリックします-ポストバック、ボタンイベントがトリガーされます

現在何が起こっているか

  • ユーザーが「いいえ」をクリック-ポストバックなし
  • ユーザーが「はい」をクリックします-ポストバック、ページ読み込みイベントがトリガーされますが、ボタンイベントハンドラーはトリガーされません

では、どうすればボタンイベントハンドラーを起動させることができますか?まさに、ページ読み込みイベントに移動します。

 <asp:Button ID="btnSetActive" runat="server" Text="Set as Active" OnClientClick="AllBrandsConfirmation(); return false;" onclick="btnSetActive_Click" />


$(function () {

    // Set all brands (yes button)
    $('#setAllBrandsConfirmation #yes').click(function () {
        $.unblockUI();
        __doPostBack('ctl00_ctl00_oCPH1_Content_btnSetActive', '');
    });

    // Set all brands (no button)
    $('#setAllBrandsConfirmation #no').click(function () {
        $.unblockUI();
    });

});


// All brands confirmation
function AllBrandsConfirmation() {
    $.blockUI({ message: $('#setAllBrandsConfirmation') });
}
4

2 に答える 2

3
protected void Page_Load(object sender, EventArgs e)
{
    if(Request.Form["__EVENTTARGET"] != null)
        if(Request.Form["__EVENTTARGET"] == "ctl00_ctl00_oCPH1_Content_btnSetActive")
            btnSetActive_Click(sender, e);
}

protected void btnSetActive_Click(object sender, EventArgs e)
{
    //do your work here
}
于 2012-12-19T19:36:28.117 に答える
1

私はちょうどそれを理解しました...まあグーグルは助けました:)どうやらdoPostBackメソッドの最初の引数では、id値ではなくコントロールuniqueIdを使用する必要があります。それを変更すると、イベントがトリガーされました。

于 2012-12-19T20:12:41.637 に答える