emr*_*res 5 javascript asp.net-mvc jquery datatables server-side-rendering
我正在使用asp.net mvc5并尝试使用jquery datatable插件服务器端处理.服务器端处理的教程显示了从服务器返回结果的格式.但是我的项目的不同之处在于我无法从服务器发送"数据"的类型化数组.我发送整个tbody作为字符串与所有HTML标签.我的数据表代码如下.
var e = t.DataTable({processing: true,
serverSide: true,
info: true,
stateSave: true,
PaginationType: "full_numbers",
ajax:{
"url": '@Url.Action("AjaxGetJsonData","Define",new { tablename= @HttpContext.Current.Request.QueryString["tablename"] })',
"type": "GET",
"success": function (result) {
console.log(result);
$("#sample_1").find("tbody").html(result.data);
$("#sample_1_processing").hide();
Init();
//var oSettings = $("#sample_1").dataTable().fnSettings();
//oSettings.iTotalRecords = result.recordsTotal;
}
}
Run Code Online (Sandbox Code Playgroud)
ajax的结果如下所示,
Object {draw: 1, iTotalRecords: 25000, iTotalDisplayRecords: 0, data: Array[1]}
Run Code Online (Sandbox Code Playgroud)
数据就像
<tr><td></td><td></td><td></td><td></td></tr>
Run Code Online (Sandbox Code Playgroud)
因为视图对于许多表是通用的,并且我应该控制许多情况.因此,我在服务器端使用StringBuilder.如果我把成功放到ajax上,那么分页元素就会消失在数据表的底部.为什么不允许在ajax中使用成功?我有数据表的所有功能,有没有办法手动设置iTotalRecords等功能?我知道这里不是数据表论坛.我很抱歉,但我花了很多时间,找不到解决方案.我想手动处理ajax成功的数据表的所有功能.我正在使用最新版本的数据表.
我最后解决了我的问题。有一些有趣的事情,但我现在可以使用成功。
var e = t.DataTable({
processing: true,
serverSide: true,
info: true,
stateSave: true,
PaginationType: "full_numbers",
"sAjaxSource": '@Url.Action("AjaxGetJsonData","Define")',
"fnServerData": function (sSource, aoData, fnCallback) {
aoData.push({ "name": "tablename", "value": $("#temprory").val() });
console.log(aoData);
$.ajax({
url: sSource,
type: "POST",
data: aoData,
success: function (msg) {
fnCallback(msg);
console.log(msg);
$("#sample_1").find("tbody").html(msg.data);
$("#sample_1_processing").hide();
Init();
}
});
}
Run Code Online (Sandbox Code Playgroud)
有趣的一点是,如果删除 fnCallback(msg),数据表的以下部分(包括分页)就会消失。我不知道它到底是做什么的,但这解决了我的问题。
| 归档时间: |
|
| 查看次数: |
845 次 |
| 最近记录: |