【发布时间】:2016-02-01 19:51:48
【问题描述】:
我需要通过数据表 (www.datatables.net) 中的行重排序函数更新数据库中的 OrderIndex 值。
我已经在 google 中搜索过,我找到了这个article。我按照所有步骤操作,但没有帮助。
如果您需要更多信息,请告诉我。谢谢
视图模型
public class GenderDDUpdateOrderIndexViewModel
{
public int Id { get; set; }
public int OrderIndex { get; set; }
}
控制器
public async Task<ActionResult> UpdateRowIndex(GenderDDUpdateOrderIndexViewModel model, int? Id, int? fromPosition, int toPosition, string direction)
{
using (var ctx = new ApplicationIdentityDbContext())
{
if (direction == "back")
{
var GenderList = ctx.GenderDD
.Where(c => (toPosition <= c.OrderIndex && c.OrderIndex <= fromPosition))
.ToList();
foreach (var gender in GenderList)
{
gender.OrderIndex++;
}
}
else
{
var GenderList = ctx.GenderDD
.Where(c => (fromPosition <= c.OrderIndex && c.OrderIndex <= toPosition))
.ToList();
foreach (var gender in GenderList)
{
gender.OrderIndex--;
}
}
ctx.GenderDD.First(c => c.Id == Id).OrderIndex = toPosition;
await ctx.SaveChangesAsync();
}
return View();
}
数据表初始化
<script>
$(document).ready(function() {
var table = $('#GenderIndex').DataTable({
"paging": true,
"pagingType": "full_numbers",
rowReorder: {
snapX: 10
}
});
});
</script>
【问题讨论】:
-
看起来您使用的是 v.1.10 - 您链接到的那篇文章适用于 v1.9,无法使用。有关此信息,请参阅 here。
-
@谢谢。是的,我正在使用最新版本。我收到以下错误:0x800a01b6 - JavaScript 运行时错误:对象不支持属性或方法“rowReordering”
标签: c# jquery asp.net asp.net-mvc datatables