我将数据表 (datatables.net) 与 sAjaxSource 结合使用
像这样
$(document).ready(function() {
$('#userTable').dataTable({
"sAjaxSource": '<%= Url.Action("GetUserData", "Home") %>',
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"bStateSave": true,
"bRetrieve": true,
"aoColumns":
[
{ "bSortable": false },
null,
{ "sType": "title-string" },
null,
null,
null,
null,
null
]
});
});
服务器方法是这样的
public JsonResult GetUserData()
{
IList<string[]> userList = GetUserList();
var sendData = new{aaData = userList};
return new JsonResult {JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = sendData};
}
这里一切正常,我可以看到表中的数据。 但是,我的一些用户属性包括一些图片链接 例如
userData[0] = string.Format("<img src='{0}' alt='{1}' title='{1}' />", picUrl, title);
但在表本身中总是缺少“/”。所以对这些列的排序不起作用。如果我做一个
userData[0] = string.Format("<img src='{0}'></img>", imgUrl);
缺少结束标记...表格单元格中的值始终为
<img src='url' title='abc'>
所以它要么缺少“/”,要么缺少 img 的整个结束标记。
json结果的开头:
{"aaData":[["\u003cimg src=\u0027/Content/image.png\u0027 class=\u0027profilePicture\u0027 /\u003e", ...[other elements]
其他人也遇到过这个问题吗?
编辑:我刚刚注意到它也将 ' 转换为 "
最佳答案
您可以做的一件事是,对于图像列,define your own sort method和 override what datatables is doing natively 。这样您就可以忽略这些图像,或者对它们做任何您想做的事情。
关于jquery - 数据表和jsonresult的排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719922/