确认对话框不在asp.net中提交itemCommand

时间:2015-09-18 13:53:05

标签: javascript c# jquery asp.net

我正在使用带有c#的asp.net 4.5。来自删除命令的转发器我要显示确认对话框。如果用户按“是”而不是删除该记录。我的删除逻辑是在“rep_ItemCommand”事件中。这是我的代码

    <as:Pager ID="pgeImportedFiles" AutoPostBack="True" EnableViewState="true" runat="server" RepeaterControlID="rptImportFiledata" Visible="false" PageSize="10" DisplayPagerOption="Top">
        <RepeaterTemplate>
            <asp:Repeater ID="rptdata" EnableViewState="true" runat="server" OnItemCommand="rptdata_ItemCommand" >
                <ItemTemplate>                            
                        <div >
                            <asp:LinkButton ID="lbnDelete"   
                                OnClientClick="javascript:return showConfirmation('Are you sure You want to Delete this File?',this.id);"                                         
                                runat="server" CommandName="Delete" CssClass="EditBtn" CommandArgument='<%# Eval("ID") %>'>Delete</asp:LinkButton>
                        </div>    
                </ItemTemplate>
            </asp:Repeater>
        </RepeaterTemplate>
    </as:Pager>

 protected void rptdata_ItemCommand(object source, RepeaterCommandEventArgs e)
 {   
   //logic for deleteing
 }

js文件中的这个javascript以及此文件中定义的“divDialogMessage1”和“divAlertBox1”

    $(divDialogMessage1).html(confirmationMessage,uniqueID){
     var result = false;
        $(divAlertBox1).dialog({
            title: "Confirmation",
            buttons: {
                "Yes": function () {
                    __doPostBack(uniqueID);
                    $(this).dialog("close");
                },
                "No": function () {
                    $(this).dialog("close");
                }
            }
        });
        $(divAlertBox1).dialog('open');
        return result;}

通过此对话框显示单击删除链接,如果选择“是”选项,页面也会回发。但是rptdata_ItemCommand没有触发。

对此有何解决方案?

1 个答案:

答案 0 :(得分:0)

删除逻辑

protected void rptdata_ItemCommand(object source, RepeaterCommandEventArgs e)
 {   
   //logic for deleteing
    switch (e.CommandName)
            {
                case "edit":
                    MyEditFunction(e.CommandArgument.ToString());
                    break;
                case "delete":
                    MyDeleteFunction(Convert.ToInt32(e.CommandArgument));
                    break;
            }
 }

确认消息

将OnItemDataBound =“AddDeleteConfirmation”添加到转发器标记中,并在后面的代码中添加以下代码

protected void AddDeleteConfirmation(Object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer)
            {
                // adds a confirmation javascript to ensure that deleting the template is really what the user wants.
                ((LinkButton)e.Item.FindControl("lbnDelete")).Attributes["onclick"] = "javascript: return confirm('Are you sure you want to delete this record?')";
            }
        }