dataTable重新异步加载表格数据

如果表格的数据不是固定的,譬如需要根据时间等参数变化,那么不可避免的需要异步加载数据。 
需要注意的是,dataTable表格对象不允许两次初始化,所以你不能简单粗暴的再次执行表格的构建方法,官方文档提供了相关的表格数据重新加载的方法,这里记载一下。 

之前说过,dataTable数据来源可以直接对data属性赋值,或者使用ajax属性发起请求。我原本以为官方会提重置data的方法,不过在官网文档上面没有找到,到是后者,官方提供了重新加载数据的方法:table.ajax.reload(),这就意味着,如果想使用重新加载数据的功能,你的数据来源只能是ajax。 

我尽量把项目里地代码拆开,使demo更加简单明了。 
这里需要注意两点:一是如何获取表格对象,二是如何重写ajax函数。 

获取已经初始化的表格对象并重新加载数据 

Javascript代码   收藏代码
  1. var table = $('#example').DataTable();  
  2. table.ajax.reload();  



在写ajax函数时,需要调用callback方法,参数就是你需要填充进表格的数据。需要注意的是这是一个对象 

Javascript代码   收藏代码
    1. "ajax" : function(data, callback, settings) {  
    2.     // 获取发起ajax的参数  
    3.     var param = {};  
    4.     param.service_code = $("#serviceSelection").val();  
    5.     param.start = $("#startTime").val();  
    6.     param.end = $("#endTime").val();  
    7.     if ($("#callerSelection").val() != 'all')  
    8.         param.caller = $("#callerSelection").val();  
    9.     // 发起ajax请求,获取数据  
    10.     var ajaxData = getAjax(param, "/api/hm/service/record",  
    11.             false);  
    12.     var data = ajaxData.data;  
    13.     // 解析数据  
    14.     if (ajaxData.status == 100) {  
    15.         var tableData = new Array(data.records.length);  
    16.         for (i = 0; i < data.records.length; i++) {  
    17.             arrary = new Array(9);  
    18.             arrary[0] = data.records[i].id;  
    19.             arrary[1] = "<span>"+data.records[i].request+</span>";  
    20.             arrary[2] = data.records[i].caller;  
    21.             arrary[3] = data.records[i].status_text;  
    22.             arrary[4] = data.records[i].reason;  
    23.             arrary[5] = data.records[i].use_cache;  
    24.             arrary[6] = data.records[i].create_time;  
    25.             arrary[7] = data.records[i].invoke_time;  
    26.             arrary[8] = "<button οnclick='showModal("  
    27.                     + data.records[i].id + ")'>查看日志</button>";  
    28.             tableData[i] = arrary;  
    29.         }  
    30.         // 填充数据,填充表格的数据是一个对象,对象需要一个叫data的属性,这个属性对应的值,才是表格真正的数据  
    31.   
    32.         var requireData = {};  
    33.         requireData.data = tableData;  
    34.         callback(requireData);  
    35.     } else {  
    36.         var requireData = {};  
    37.         requireData.data = [];  
    38.         callback(requireData);  
    39.     }  
    40. }  

转载于:https://www.cnblogs.com/tl1025/p/9604107.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 C# 中的 DataTable 加载 Excel 表格的示代码: ```csharp using System; using System.Data; using System.Data.OleDb; class Program { static void Main(string[] args) { // Excel 连接字符串 string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\YourExcelFile.xlsx;Extended Properties='Excel 12.0;HDR=YES;'"; // 创建连接对象 using (OleDbConnection connection = new OleDbConnection(connectionString)) { // 打开连接 connection.Open(); // 查询语句 string query = "SELECT * FROM [Sheet1$]"; // 创建命令对象 using (OleDbCommand command = new OleDbCommand(query, connection)) { // 创建数据适配器 using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { // 创建 DataTable 对象 DataTable dataTable = new DataTable(); // 填充 DataTable adapter.Fill(dataTable); // 遍历 DataTable 中的数据 foreach (DataRow row in dataTable.Rows) { foreach (DataColumn column in dataTable.Columns) { Console.Write(row[column] + "\t"); } Console.WriteLine(); } } } } Console.ReadLine(); } } ``` 请注意,你需要根据你的实际情况修改连接字符串中的 Excel 文件路径和表格名称。此示例使用了 `Microsoft.ACE.OLEDB.12.0` 提供程序来访问 Excel 文件。如果你使用的是早期版本的 Excel(如 .xls 格式),则需要相应更改连接字符串和提供程序。 此代码将从名为 "Sheet1" 的工作表中选择所有数据,并将其加载DataTable 中。然后,它遍历 DataTable 并将数据打印到控制台。 记得在使用前,你需要在项目中添加对 `System.Data` 和 `System.Data.OleDb` 命名空间的引用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值