服务器端处理动态列
Server Side Processing Dynamic Columns
服务器端路径提供 404 错误,其中路径与初始加载 table 时使用的路径相同。 table 被销毁,列被动态更改。
我在有静态列的地方成功应用了服务器端处理。我以前在没有服务器端处理的情况下动态构建了 table,但现在负载太大,无法处理。因此,我已经转移到具有服务器端处理配置的 SQL 分页,但它不会加载 table 即使我认为路径与我最初加载 table 时的路径相同但只有一个静态列。我使用的是 1.10.15 版本,因为我使用该库的时间很长,而且我担心如果升级,许多 table 将不再工作。不确定升级是否也能解决问题。
JQuery数据tables代码
var oTable = $("#InvoiceProcessing").DataTable({
jQueryUI: true,
pagingType: "full_numbers",
responsive: true,
"scrollX": true,
"bServerSide": true,
"sAjaxSource": "@Url.Action("GetInvoiceProcessing", "InvoiceProcessing")?clientId=" + cId + "&summaryDate=" + sumDate + "&processedDate=" + procDate + "&accountNumber=&invoiceNumber=",
"bProcessing": true,
"destroy": true,
lengthMenu: [[25, 50, 100], [25, 50, 100]],
"autoWidth": true
});
C# 方法签名 - 此方法未命中
public async Task<ActionResult> GetInvoiceProcessing(Guid? clientId, DateTime? summaryDate, DateTime? processedDate, DataTableParamModel param, string accountNumber = "", string invoiceNumber = "")
我需要让分页反映查询的完整大小。我正在使用 sql 分页,其中 returns 总记录数和数据的页面长度。如果我能在没有服务器端处理的情况下完成这个,我也会很高兴。
我能够使用 Priyank Panchal 提供的信息,但修改了建议中的解决方案以满足我的需要。
我无法按原样使用它,因为我为网格生成的列是由数据动态驱动的,因此无法在加载前进行预定义。
为此,我必须以三种不同的方式加载网格。
- 首先,我只用一个字段加载它,该字段标识它与 Datatable 的默认消息 "No Available Records" 的用法。
- 第二次加载在选择客户端后重新创建网格,这决定了所需的字段,并使用正确的结构重新加载。
- 最后,我用定义数据过滤方式的用户的另一个选择重新加载网格。
此外,还需要隐藏第一列,我通过 Datatables 配置的 "columnDefs" 属性来实现。
最后一个要求是为编辑和删除按钮提供额外的字段。
这是通过 "columnDefs" 属性以及通过以下方式引用 table 实现的:"aTargets":[oTable.columns()[0]。长度 - 2]。这提供了将它首先添加到最后一列并在它之后添加另一个的能力。
服务器端路径提供 404 错误,其中路径与初始加载 table 时使用的路径相同。 table 被销毁,列被动态更改。
我在有静态列的地方成功应用了服务器端处理。我以前在没有服务器端处理的情况下动态构建了 table,但现在负载太大,无法处理。因此,我已经转移到具有服务器端处理配置的 SQL 分页,但它不会加载 table 即使我认为路径与我最初加载 table 时的路径相同但只有一个静态列。我使用的是 1.10.15 版本,因为我使用该库的时间很长,而且我担心如果升级,许多 table 将不再工作。不确定升级是否也能解决问题。
JQuery数据tables代码
var oTable = $("#InvoiceProcessing").DataTable({
jQueryUI: true,
pagingType: "full_numbers",
responsive: true,
"scrollX": true,
"bServerSide": true,
"sAjaxSource": "@Url.Action("GetInvoiceProcessing", "InvoiceProcessing")?clientId=" + cId + "&summaryDate=" + sumDate + "&processedDate=" + procDate + "&accountNumber=&invoiceNumber=",
"bProcessing": true,
"destroy": true,
lengthMenu: [[25, 50, 100], [25, 50, 100]],
"autoWidth": true
});
C# 方法签名 - 此方法未命中
public async Task<ActionResult> GetInvoiceProcessing(Guid? clientId, DateTime? summaryDate, DateTime? processedDate, DataTableParamModel param, string accountNumber = "", string invoiceNumber = "")
我需要让分页反映查询的完整大小。我正在使用 sql 分页,其中 returns 总记录数和数据的页面长度。如果我能在没有服务器端处理的情况下完成这个,我也会很高兴。
我能够使用 Priyank Panchal 提供的信息,但修改了建议中的解决方案以满足我的需要。
我无法按原样使用它,因为我为网格生成的列是由数据动态驱动的,因此无法在加载前进行预定义。
为此,我必须以三种不同的方式加载网格。
- 首先,我只用一个字段加载它,该字段标识它与 Datatable 的默认消息 "No Available Records" 的用法。
- 第二次加载在选择客户端后重新创建网格,这决定了所需的字段,并使用正确的结构重新加载。
- 最后,我用定义数据过滤方式的用户的另一个选择重新加载网格。
此外,还需要隐藏第一列,我通过 Datatables 配置的 "columnDefs" 属性来实现。
最后一个要求是为编辑和删除按钮提供额外的字段。
这是通过 "columnDefs" 属性以及通过以下方式引用 table 实现的:"aTargets":[oTable.columns()[0]。长度 - 2]。这提供了将它首先添加到最后一列并在它之后添加另一个的能力。