我正在尝试获得可排序工作的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>
这个html在我的asp.net mvc视图中:
<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 post请求的动作是这样的:
[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]”。我无法弄清楚如何将该对象的内容作为字符串。
非常感谢任何帮助。
答案 0 :(得分:2)
您元素的ID为sortThis
,资金为T
。
$('#sortthis').sortable('serialize')
将返回空的jQuery对象,以表明它没有找到该选择器的任何匹配元素。
更改
var order = $('#sortthis').sortable('serialize');
到
var order = $('#sortThis').sortable('serialize');
它应该有用。