2

对不起,如果我的英语很差。

我有一个问题,我认为问题在于我对 javascript 的了解不足,但是.. 我知道你可以帮助我解决这个问题。

我有一个带有图像按钮的页面,我用它来删除数据,我需要一个确认对话框。Alertify 很漂亮,我在服务器端使用 altertify alert,如下所示:

string myScript2 = "alertify.error('message.')";
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), 
                Guid.NewGuid().ToString(), myScript2, true);
return; 

并且工作正常!

但我不明白如何使用 alertify.confirm。

例如我用过

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="../../js/alertify.min.js"></script>
    <!-- include the core styles -->
<link rel="stylesheet" href="../../js/alertify.core.css" />
    <!-- include a theme, can be included into the core instead of 2 separate files -->
<link rel="stylesheet" href="../../js/alertify.default.css" />
<script type="text/javascript">
        $("#btElimina").on('click', function () {
            alertify.confirm("This is a confirm dialog", function (e) {
                if (e) {
                    alertify.success("You've clicked OK");
                } else {
                    alertify.error("You've clicked Cancel");
                }
            });
            return false;
        });
    </script>

但无事可做...我不能使用 onclientclick 因为 alertify 是非阻塞而不是模态窗口...你能帮我理解吗?不是为我编写代码,而是为了理解并使我可行,谢谢

亨利

4

3 回答 3

1

我使用了它并且它正在工作:

我的按钮是:

<asp:ImageButton ToolTip="Çıkış" ID="ImageButton1" ImageUrl="Image/Exit.png" runat="server"  OnClick="btnLogout_Click" />

我的脚本是:

<script type="text/javascript">
    $("#ImageButton1").on('click', function () {
        alertify.confirm("This is a confirm dialog", function (e) {
            if (e) {
                alertify.success("You've clicked OK");

                __doPostBack("<%=ImageButton1.UniqueID%>", "");
            } else {
                alertify.error("You've clicked Cancel");
            }
        });
        return false;
    });
</script>

在这里,当我单击“取消”按钮返回 false 并且什么都不做,但是当您单击确定按钮时,我正在为相关按钮进行回发,您可以在服务器端编写自己的代码

protected void btnLogout_Click(object sender, EventArgs e)
        {
            Session.RemoveAll();
            Response.Redirect("~/Login.aspx");
            ...
        } 
于 2014-11-21T07:54:48.310 回答
1

替换alertify.success("You've clicked OK");return true;alertify.error("You've clicked Cancel");_return false;

也改变这个:

$("#btElimina").on('click', function () {

对此:

$("#<%=btElimina.ClientID%>").on('click', return function () {
于 2013-10-31T09:00:46.137 回答
0

我无法对下面的最后一条评论发表评论,因为我没有 50 名声望,所以我发布一个答案只是为了详细说明 Ratna 的答案。

根据 Ratna 的回答,您应该使用服务器标签来引用 ASP.Net 控件(带有 runat="server" 的控件),以确保无论 ASP.Net 将控件重命名为什么,您都能获得该控件。

所以重申拉特纳的回答:

代替

$('#btElimina').on(..

利用

$('#<%= btElimina.ClientID %>').on(..

确保您在 jQuery 脚本中获得正确的客户端控件 ID。

于 2014-06-20T14:37:54.997 回答