确认框第一次没有提交

本文关键字:提交 第一次 确认 | 更新日期: 2023-09-27 18:12:39

我使用c#,我有一个ImageButton在一个中继器。我希望这个按钮有一个确认框,然后触发中继器的itemCommand。

问题是你第一次点击它,提交没有被触发。在你点击它的其他时候工作得很好,但不是第一次。

aspx的代码:

<script type="text/javascript">
    function Doconfirm(message) {
        var proceed = confirm(message);
        if (proceed) {
            Page_ValidationActive = false;
        }
        return proceed;
    }
</script>
 <asp:Repeater ID="rptOrders" runat="server" OnItemDataBound="rptOrders_itemDataBound" OnItemCommand="rptOrders_ItemCommand">
    <ItemTemplate>
        <asp:ImageButton CausesValidation="false" ID="DeleteImageButton" runat="server" CommandName="Delete" Enabled = "false" ImageUrl="aux_images/bg-ie-select-width-13px.png"/>
    </ItemTemplate>

后面的代码是:

 protected void rptOrders_itemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.DataItem != null)
        {
         //Some code...
         ImageButton LnkDelete = (ImageButton)e.Item.FindControl("DeleteImageButton");
                    LnkDelete.Enabled = true;
                    LnkDelete.OnClientClick = "return Doconfirm('" + this.GetLocalResourceObject("ConfirmText") + "');";
                    LnkDelete.ID = Detail.OrderId.ToString();
                    LnkDelete.CommandArgument = Detail.OrderId.ToString();
                    LnkDelete.CommandName = "Delete";
                }
            }
        }
    }
    protected void rptOrders_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName.Equals("Delete"))
        {
            //Some code...
        }
    }

有人能帮我吗?

确认框第一次没有提交

我在代码中注意到的第一件事是行(在rptOrders_itemDataBound)

LnkDelete.ID = Detail.OrderId.ToString();

是多余的

我的理论是,您在同一验证组中的页面上有其他控件,这些控件在按下删除按钮时无效。但是在javascript部分,你取消激活页面验证,所以第一次点击被吞噬,但任何进一步的点击都会成功。

所以如果你使用不同的验证组它应该工作得很好