datatables.net:服务器端处理的错误处理

TS。

我已经使用 DataTables.Aspnet.Core & DataTables.AspNet.WebApi2 nugets 在 MVC 应用程序上设置了带有服务器端处理的 datatables.net。一切正常,数据加载并显示正常。

如果服务器端出现问题,我会捕获异常并返回包含我的自定义错误消息的结果:

// IDataTablesRequest tableRequest
return new DataTablesJsonResult(Response.Create(tableRequest, "my custom error message"), Request);

在客户端,我也注册了错误事件:

$.fn.dataTable.ext.errMode = 'none';
this.$dataTable.on('error.dt', this.onDataTableError.bind(this));

这也很好用,我可以解析响应并检查我的自定义消息。

现在的问题是:处理错误后,我总是感到害怕,Uncaught TypeError: Cannot read property 'length' of undefined我认为是这种情况,因为我没有向客户端发送任何数据?

我怎样才能防止这个错误?

TS。

我无法通过添加空数据集在服务器端解决此问题,因为这不会与 json 一起传递。

我最终做的是确保客户端总是有一个数据数组:

// register to ajax request event
this.$dataTable.on('xhr.dt', this.afterAjax.bind(this));

// set empty array to make sure we have no issue 
// with null references on data.length for loop
afterAjax(event: JQueryEventObject, settings: any, payload: any, response: any): void {
        payload.data = payload.data || [];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

DataTables服务器端处理URL太长

django datatables多方现场服务器端处理

使用服务器端处理时未显示DataTables加载消息

通过服务器端处理从DataTables导出所有内容?

DataTables服务器端处理-回显draw()参数(Python / Flask)

多个来源的datatables格式列?(服务器端处理)

dataTables .row()不是服务器端处理行详细信息的函数

columnFilter插件不适用于Angular DataTables服务器端处理

使用 Python (Flask/Postgresql) 的 DataTables 服务器端处理

使用Datatables v1.10.0进行服务器端处理

jQuery DataTables POST服务器端Json错误

从网站抓取数据,该网站通过DataTables和Ajax执行服务器端数据处理

Rails 5 服务器端错误处理

使用DataTables插件的服务器端分页

使用DataTables进行服务器端分页

如何使用DataTables服务器端列排序?

Datatables.net与Spring的服务器端分页:如何选择单行的ID?

如何在服务器端处理模式下将表单数据与jQuery DataTables数据一起发送

组件中的角度服务器端登录错误处理?

在服务器端尝试捕获影响反应中的错误处理

如何在ASP.net Core中实现dataTables服务器端分页/搜索/排序

错误处理服务器端 (.NET Core 5.0) 通过连接到客户端(Angular 11)呈现错误消息

DataTables分页似乎不适用于服务器端数据

JQuery DataTables服务器端分页,排序,使用Spring MVC + JPA进行搜索

如何从服务器端Java返回正确的JSON到DataTables?

为什么服务器端分页对我的jquery datatables表不起作用?

jQuery datatables服务器端-过滤器列在顶部

如何使用Angular方式示例在Angular DataTables中使用服务器端选项?

YADCF + Datatables服务器端用PHP填充Select