如何从JQuery Dialog调用c#按钮事件

时间:2015-12-09 09:33:52

标签: javascript c# jquery asp.net

这是我的先例实施:

example.aspx

<asp:Button ID="rejectButton" runat="server" Text="REJECT" OnClick="OnRejectButtonClick"/>

并在 example.aspx.cs

protected void OnRejectButtonClick(object sender, EventArgs e)
{
    // a lot of stuff...
    rejecter();
}

......这很有效。

现在我需要一个对话框来确认拒绝。现在我的代码是:

example.aspx

<asp:Button ID="rejectButton" runat="server" Text="REJECT" OnClientClick="return openDialog();"/>

<div id="dialog" title="Seleziona causa">
    <p>... bla bla...</p>
</div>

<script>
    $(function () {
        $("#dialog").dialog({ autoOpen: false, modal: true, show: "blind", hide: "blind",
            buttons: {
                "Okay": function () {
                    OnRejectButtonClick; // DOESN'T WORK!
                    $(this).dialog("close");

                },
                "Annulla": function () {
                    $(this).dialog("close");
                }
            }
        });
    });

    function openDialog() {
        $("#dialog").dialog("open");
        return false;
    }
</script>

example.aspx.cs 未更改。

但是在这种变化之后,对OnRejectButtonClick事件的调用不再发生了。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

你需要用jquery调用它。

//before you click the button you should set a global variable
serverEx = true;
$("#rejectButton").click();

OnClientSciprt拒绝按钮的方法中openDialog

function openDialog() {

    if(serverEx)
       return true;

    $("#dialog").dialog("open");
    return false;
}

像克里斯戴维斯所说的那样将ClientIDMode="Static"添加到按钮中。

答案 1 :(得分:2)

如果您不想使用jquery,可以使用:

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

所以你的代码将是这样的:

   $(function () {
        $("#dialog").dialog({ autoOpen: false, modal: true, show: "blind", hide: "blind",
            buttons: {
                "Okay": function () {
                    __doPostBack('<%= rejectButton.UniqueID %>', "");
                    $(this).dialog("close");

                },
                "Annulla": function () {
                    $(this).dialog("close");
                }
            }
        });
    });

答案 2 :(得分:0)

您可以尝试这样的事情:

__doPostBack('rejectButton','OnClick'); 

实际执行asp.net操作。