删除确认窗口

时间:2015-06-09 07:11:33

标签: jquery asp.net-mvc asp.net-mvc-4 telerik

<div id="modalWindow">
    <button id="yes" class="k-button">Yes</button>
    <button id="no" class="k-button">No</button>
</div>
<script>
var wnd;
$(document).ready(function() {
    wnd = $("#modalWindow").kendoWindow({
        title: "Delete confirmation",
        modal: true,
        visible: false,
        resizable: false,
        width: 300
    }).data("kendoWindow");

});

function DeleteItem(e) {
    e.preventDefault();

    var grid = this;
    var row = $(e.currentTarget).closest("tr");
    wnd.center().open();

    $("#yes").click(function() {
        grid.removeRow(row);
        wnd.close();
    });

    $("#no").click(function() {
        wnd.close();
    });
}
</script>

您好,

我使用带有自定义按钮列的Telerik Grid,该列打开一个窗口以确认删除相关行。 当我单击一行的按钮,我确认删除它正常工作。 当我单击一行按钮时,取消删除,然后单击另一行的另一个按钮并提交删除它删除网格的每一行。

我该怎么做才能解决这个问题?

问候

1 个答案:

答案 0 :(得分:0)

每次调用DeleteItem函数时,您都会设置#yes按钮的处理程序来删除特定行。即使您取消并选择了另一行,处理程序也已设置,并且将在以后单击该按钮时运行。

为避免这种情况,您应该先设置之前设置的点击事件处理程序,然后再设置新事件:

function DeleteItem(e) {
    e.preventDefault();

    var grid = this;
    var row = $(e.currentTarget).closest("tr");
    wnd.center().open();

    $("#yes").unbind('click').click(function () {
        grid.removeRow(row);
        wnd.close();
    });

    $("#no").unbind('click').click(function () {
        wnd.close();
    });
}