0

Webgrid在我的一个项目中使用,所有功能(添加、编辑、删除、详细信息)都运行良好。我正在使用 ajax post 方法来删​​除同一表单上的记录。

因此,当我简单地单击删除时,它会从数据库中删除记录。但是,当我第一次单击“类别名称”以显示该类别的详细信息,然后单击“删除”时,它什么也没做。

删除链接的 Click 事件此时不起作用。我不知道为什么会这样。

以下是我的看法:

@model IEnumerable<Demo.Models.CategoryModel>
@{
ViewBag.Title = "Category List";
}
@{
Demo.Models.CategoryModel category = new Demo.Models.CategoryModel();
}
@{

var gd = new WebGrid(Model, canPage: true, rowsPerPage: 5, selectionFieldName: "selectedRow", ajaxUpdateContainerId: "gridContent");

}
<div class="main">
<h2>
    Category List</h2>
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<div id="gridContent">
    @using (Html.BeginForm("Delete", null, FormMethod.Post, new { @class = "updateForm" }))
    {
        @gd.GetHtml(tableStyle: "tbl",

                 headerStyle: "",

            alternatingRowStyle: "altRow",

            selectedRowStyle: "selectRow",

            mode: WebGridPagerModes.All,

            columns: gd.Columns(

            gd.Column("Category Name", format: (item) => item.GetSelectLink(item.Name)),

            gd.Column("Description", "Description"),

            gd.Column("ParentCategoryName", "Parent Category"),

            gd.Column("", header: "", format: @<text>
        @Html.ActionLink("Edit", "Edit", new { id = item.CategoryId }, new { @class = "edit" })
        | <a href="JavaScript:void(0)" class="RemoveLink" data-id="@item.CategoryId" onclick = "return confirm('Do you want to Delete this Category?')">
            Delete</a>
        </text>, style: "last-item"
                     )
             ))

        <div class="cat-dets">
            @if (gd.HasSelection)
            {
                <h2>
                    Category Details</h2>
                category = (Demo.Models.CategoryModel)gd.Rows[gd.SelectedIndex].Value;
                <b>Category Id: </b> @category.CategoryId<br />  
                <b>Category Name: </b> @category.Name<br />            
                <b>Description</b> @category.Description<br />
                <b>Parent Category</b> @category.ParentCategoryName<br />
            }
        </div>
    }
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {        
    $(".RemoveLink").click(function () {            
        var recordToDelete = $(this).attr("data-id");            
        if (recordToDelete != '') {
            $.post("/Category/Delete", { "id": recordToDelete },
            function (data) {
                if (data.status == "success") {
                    window.location.href = window.location.href;
                }
            });
        }
    });
});
</script>

如果我留下了一些东西,请帮助我..

谢谢

更新:

经过一番谷歌搜索后,我发现这可能是 webgrid Get Method 发布和我的表单的 Post Method 数据发布之间的问题。由于分页和排序后删除也不起作用。如果有人在 webgrid 中使用过 Form Post 方法,请帮助我。

4

1 回答 1

0

下午好,尝试使用 jquery "on" 绑定定义 removelink click 事件:

$(".RemoveLink").on("click", function () { 
    ...
});
于 2013-09-27T18:29:21.587 回答