如何在不使用任何插件的情况下使用jquery在ASP.Net MVC3中拖放表行?

时间:2012-11-28 12:09:35

标签: jquery asp.net-mvc-3

我在ASP.Net MVC3项目中使用datatable插件。在这里我要实现 行重新排序。我使用“jQuery.dataTables.rowReordering.js”插件来实现它。对于你而言 工作正常,但它无法调用服务器端功能。

<script type="text/javascript">
    $(document).ready(function () {
        $('#myDataTable').dataTable().rowReordering({sURL: "/AdminArea/UpdateOrder" });
    });
</script>

我的控制器代码是

public ActionResult Index()
 {
   return View(db.AdminAreas.ToList());
 }

public void UpdateOrder(int id, int fromPosition, int toPosition, string direction)
{
}

查看

<table id="myDataTable">
<thead>
    <tr>
        <th>
            OrderNo
        </th>        
        <th>
            SubArea
        </th>
        <th>
            Description
        </th>        

    </tr>
</thead>
 <tbody>
@{
    if (@ViewData["SubAreaForArea"] != null)
    {
        IEnumerable<GridDragAndDrop.Models.SubAreaForAdmin> subarea = ViewData["SubAreaForArea"] as IEnumerable<GridDragAndDrop.Models.SubAreaForAdmin>;

        foreach (var item in subarea)
        {
            <tr class="order">
                <td>
                    @Html.DisplayFor(modelItem =>item.OrderNo)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.SubArea)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Description)
                </td>
            </tr>
        }
    }
}
</tbody>
</table>

我找不到问题。所以请帮我实现行拖放使用 jQuery的。更新的订单也将在数据库中更新。

1 个答案:

答案 0 :(得分:1)

您应该将 Updateorder 功能更改为

public void UpdateOrder(int id, string fromPosition, string toPosition, string direction)

因为jQuery数据表使用mime类型("text")

实现了AJAX功能