Mvc4将Jquery可排序列表项的顺序保持到控制器
Mvc4 persist order of Jquery sortable list items to controller
我有一个项目列表,希望用户使用Jquery可排序项进行排序。项目的结构如下:
public class SortableItems
{
public int Code { get; set; }
public byte? Priority { get; set; }
public string Name { get; set; }
public int IsActive { get; set; }
}
在我看来,我以以下方式在表单中呈现可排序的:
@using (Html.BeginForm("TestAction", "TestController", FormMethod.Post, new { id = "submitTest" }))
{
<ul id="sortable" style="padding:0px;">
@for (int i = 0; i < Model.List.Count(); i++)
{
<li class="ui-state-default">
@Html.HiddenFor(x => Model.List[i].Code, new { @class = "id" })
@Html.HiddenFor(x => Model.List[i].Priority, new { @class = "order" })
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
@Model.List[i].Name
</li>
}
</ul>
<input type="submit" class="btn btn-primary" value="Update" />
}
现在,用户可以根据自己的意愿对列表中的N个项目进行排序。但我还没有找到更新Priority(用户排序的项目顺序)的pidden值的方法
如何将项目的顺序保持到我的控制器?
这就是我解决问题的方法:
在客户端,我做了以下操作:
var neworder = new Array();
$("#sortable").disableSelection();
$("#sortable").sortable({
stop: function (event, ui) {
neworder = new Array();
$('#sortable li').each(function () {
//get the id
var id = $(this).attr("data-id");
neworder.push(id);
});
}
});
$(function () {
$('#submitTest').submit(function () {
if (neworder.length < 1) {
return false;
}
$.ajax({
url: "GuardarPrioridad", type: "POST", dataType: "json",
data: { orden: neworder.toString() },
success: function (result) {
$('#ShowResultHere').text(result);
$("#submitTest").hide();// .tex.html(result);
}
});
return false;
});
});
每次用户移动元素时,我都会更新一个数组,该数组按照用户放入元素的顺序包含元素的ID。
然后,我通过ajax提交这个数组,它会被控制器接收。
我的控制器是这样的:
public JsonResult SavePriority(string orden)
{
string[] data= orden.Split(',');
for (int i = 0; i < droguerias.Length; i++)
{
//save to DB
}
return Json("Saved!");
}
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- ajax请求的顺序总是不同的
- 按照选项卡索引的顺序循环一个jQuery选择
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 按顺序添加和删除类
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 按我自己的类克隆另一个元素的内容和顺序
- Mvc4将Jquery可排序列表项的顺序保持到控制器
- 如何使用requireJs以正确的顺序定义控制器,路由器和应用程序
- 按控制器设置默认顺序
- Angular控制器中的操作顺序没有以正确的方式工作
- AngularJS -控制器函数顺序-一些引用不起作用
- ES6导入和角度控制器的初始化顺序