mvc中如何用ajax生成table,Asp.net MVC 中利用jquery datatables 实现数据分页显示功能

本文介绍了在Asp.net MVC中如何使用jQuery DataTables插件通过AJAX实现数据分页显示。Controller部分展示了获取数据的方法,cshtml视图页面中包含了初始化和配置DataTable的代码,实现了表格的动态加载和分页功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Controller中的方法代码如下:

由于方法中的存储过程没有带分页参数,所以还可以有继续优化的空间。

///

/// 获取测点列表

///

///

[HttpPost]

public JsonResult GetMeasurePointList(string TreeID, string TreeType, int sEcho, int iDisplayStart, int iDisplayLength)

{

DataTable dtResult = new DataTable();

string sql = string.Format("EXEC P_GET_ZXJG_TagList '{0}','{1}'", TreeID, TreeType);

dtResult = QuerySQL.GetDataTable(sql);

dtResult.Columns.Add("XuHao", typeof(string));

dtResult.Columns.Add("StrValueTime", typeof(string));

for (int i = 0; i < dtResult.Rows.Count; i++)

{

dtResult.Rows[i]["XuHao"] = (i + 1).ToString();

dtResult.Rows[i]["StrValueTime"] = Convert.ToDateTime(dtResult.Rows[i]["F_ValueTime"]).ToString("yyyy-MM-dd HH:mm:ss");

}

int iTotalRecords = 0;

int iTotalDisplayRecords = 0;

List queryList = dtResult.AsEnumerable().ToList();

iTotalRecords = queryList.Count();

queryList = queryList.Skip(iDisplayStart).Take(iDisplayLength).ToList();

iTotalDisplayRecords = queryList.Count();

var temp = from p in queryList

select new

{

XuHao = p.Field("XuHao").ToString(),

F_Description = p.Field("F_Description").ToString(),

StrValueTime = p.Field("StrValueTime").ToString(),

F_Value = p.Field("F_Value").ToString(),

F_Unit = p.Field("F_Unit").ToString(),

F_AlmLow = p.Field("F_AlmLow").ToString(),

F_AlmUp = p.Field("F_AlmUp").ToString()

};

return Json(new

{

draw = sEcho,

recordsFiltered = iTotalRecords,

recordsTotal = iTotalDisplayRecords,

data = temp.ToList()

}, JsonRequestBehavior.AllowGet);

}

2、cshtml视图页面中代码如下:

function InitData() {

var dataTable = $('#tbMeasurePointList').DataTable({

"scrollY": "hidden",

"scrollCollapse": false,

"dom": 'tr',

language: {

lengthMenu: '',//左上角的分页大小显示。

search: '搜索:',//右上角的搜索文本,可以写html标签

loadingRecords: '数据加载中...',

paginate: {

//分页的样式内容。

previous: "上一页",

next: "下一页",

first: "",

last: ""

},

zeroRecords: "暂无数据",//table tbody内容为空时,tbody的内容。

//下面三者构成了总体的左下角的内容。

info: "总共 _TOTAL_ 条,计 _PAGES_ 页,当前显示 _START_ -- _END_ 条记录 ",//左下角的信息显示,大写的词为关键字。初始_MAX_ 条

infoEmpty: "0条记录",//筛选为空时左下角的显示。

infoFiltered: ""//筛选之后的左下角筛选提示,

},

"lengthChange": false,

"ordering": false,

"iDisplayLength": 10,

"searching": false,

destroy: true, //Cannot reinitialise DataTable,解决重新加载表格内容问题

"serverSide": true,

"sAjaxSource": "@Url.Action("GetMeasurePointList", "OnlineMonitor")",

"fnServerData": function (sSource, aoData, fnCallback) {

aoData.push({ "name": "TreeID", "value": $("#hidTreeID").val() });

aoData.push({ "name": "TreeType", "value": $("#hidTreeType").val() });

$.ajax({

"dataType": 'json',

"type": "POST",

"url": sSource,

"data": aoData,

"success": fnCallback

});

},

"aoColumns": [

{ "mDataProp": "XuHao", "width": "50" },

{ "mDataProp": "F_Description", "width": "400" },

{ "mDataProp": "StrValueTime", "width": "200" },

{ "mDataProp": "F_Value", "width": "100" },

{ "mDataProp": "F_Unit", "width": "100" },

{ "mDataProp": "F_AlmLow", "width": "100" },

{ "mDataProp": "F_AlmUp", "width": "100"}

],

"createdRow": function (row, data, index) {

$(row).children('td').eq(0).attr('style', 'text-align: center;');

$(row).children('td').eq(1).attr('style', 'text-align: left;');

$(row).children('td').eq(2).attr('style', 'text-align: center;');

$(row).children('td').eq(3).attr('style', 'text-align: right;');

$(row).children('td').eq(4).attr('style', 'text-align: center;');

$(row).children('td').eq(5).attr('style', 'text-align: right;');

$(row).children('td').eq(6).attr('style', 'text-align: right;');

}

});

}

3、实际显示效果如下图所示:

0592db7ae1c32afe6ee916804a8c55c8.png

以上所述是小编给大家介绍的Asp.net MVC 中利用jquery datatables 实现数据分页显示,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值