我正在尝试获得可排序工作的Ajax版本。我有这个Javascript:
<script src="/Scripts/jquery-ui/jquery.ui.widget.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui/jquery.ui.sortable.js" type="text/javascript"></script>
<script type="text/javascript">
// Sortable
$(document).ready(function () {
$("#sortThis").sortable({
handle: '.handle',
update: function () {
// get new order
var order = $('#sortthis').sortable('serialize');
// excecute ajax for db update
$.post(
"/find/ajaxactionhere",
order,
function (data) {
$("#info").html(data);
}
);
}
});
});
</script>
而在我的asp.net mvc视图中的这个html:
<table>
<thead>
<tr>
<th>headers</th>
<th>headers</th>
</tr>
</thead>
<tbody id="sortThis">
<% foreach (var item in Model) %>
<% { %>
<tr id="list_<%: item.Tier %>">
<td>
<img class="handle" src="/sortIcon.gif" />
</td>
<td><%: item.data %></td>
</tr>
<% } %>
</tbody>
</table>
这样可以成功地对所有表行进行重新排序。我处理ajax发布请求的操作是这样的:
[HttpPost]
public string ajaxactionhere(FormCollection form)
{
StringBuilder sb = new StringBuilder();
sb.Append(":: ");
if (form != null)
{
foreach (var key in form.AllKeys)
{
sb.Append(form[key]);
}
}
else
{
sb.Append("null");
}
return sb.ToString();
}
javascript变量
order
分配了$('#sortthis').sortable('serialize');
。每当我显示order
时,它都会显示“ [object Object]”。我不知道如何获取该对象的内容作为字符串。任何帮助将不胜感激。
最佳答案
您元素的ID为sortThis
,大写字母为T
。$('#sortthis').sortable('serialize')
将仅返回空的jQuery对象,以指示该选择器未找到任何匹配的元素。
更改var order = $('#sortthis').sortable('serialize');
至var order = $('#sortThis').sortable('serialize');
它应该工作。