0

我正在尝试使用这样的图像按钮删除gridview中的一行

                        <asp:TemplateField>
                        <ItemTemplate>
                            <asp:ImageButton ID="imgDelete" CssClass="gridColumnDelete" runat="server" ImageUrl="~/Imgs/Delete.png" AlternateText="Delete"  
                            CommandName="Delete" CommandArgument="<%#((GridViewRow)Container).RowIndex %>"/>
                        </ItemTemplate>
                    </asp:TemplateField>

我已经编写了 jQuery 对话框来确认这样的删除

$(document).ready(function () {
confirm();
    });

    function confirm() {
        $(".gridColumnDelete").click(function () {
            $("#dialog-confirm").dialog({
                resizable: false,
                height: 140,
                modal: true,
                buttons: {
                    "Yes": function () {
                        __doPostBack(); 
                        $(this).dialog("close");
                    },
                    Cancel: function () {
                        $(this).dialog("close");
                    }
                }

            });
        });
        return false;
    }

用于对话框的 div 标签是这个

 <div id="dialog-confirm" title="Confirm?" style="display:none">
<p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Are you sure to delete the trip?</p>
</div>

问题是我是单击是还是在对话框中取消 Gridview_RowCommand 是在 c# 中执行的。

实际上 Gridview_RowCommand 甚至在我单击确认对话框中的任何按钮之前就已执行

4

3 回答 3

1

删除最后的 return 语句并执行以下操作

"Yes": function () {
   // __doPostBack(); 
    $(this).dialog("close");
    return true;
},
"Cancel": function () {
    $(this).dialog("close");
    return false;
}

并改变你asp:ImageButton的如下

<asp:ImageButton ID="imgDelete"  OnClientClick="return confirm();" CssClass="gridColumnDelete" runat="server" ImageUrl="~/Imgs/Delete.png" AlternateText="Delete"  
                            CommandName="Delete" CommandArgument="<%#((GridViewRow)Container).RowIndex %>"/>
于 2013-10-17T03:11:22.410 回答
1
"Yes": function () {
    $(this).dialog("close");
    return true;
},
"Cancel": function () {
    $(this).dialog("close");
    return false;
}

<asp:ImageButton ID="imgDelete"  OnClientClick="return confirm();" CssClass="gridColumnDelete" runat="server" ImageUrl="~/Imgs/Delete.png" AlternateText="Delete"  
                            CommandName="Delete" CommandArgument="<%#((GridViewRow)Container).RowIndex %>"/>
于 2013-10-17T04:10:33.680 回答
0

使用http://www.codeproject.com/Articles/238122/Delete-Functionality-in-GridView-with-Confirmation [CodeProject][1]中的以下链接修复了问题

于 2013-10-17T07:38:52.987 回答