开发者问题收集

支持网格上的空列

2022-10-25
251

我目前正在使用 Telerik Kendo Grid 开发 ASP.Net Core MVC 应用程序。>

在网格上,我有如下列:

.Columns(columns =>
                    {
     columns.Bound(x => x.PrimaryContact.EmailAddress)
  })

但是这会引发错误:

Uncaught TypeError: Cannot read properties of null

因为 PrimaryContact 属性可以为空

为了解决这个问题,我尝试:

columns.Bound(x => x.PrimaryContact != null ? x.PrimaryContact.EmailAddress : string.Empty)

但是现在返回错误:

InvalidOperationException: Bound columns require a field or property access expression.

如何在 kendo 列中支持可为空?

2个回答

您必须使用 ClientTemplate :

columns.Bound(x => x.PrimaryContact.EmailAddress)
       .ClientTemplate("#=PrimaryContact ? PrimaryContact.EmailAddress : ''#")

检查: https://feedback.telerik.com/aspnet-mvc/1357413-support-null-complex-properties-in-grid-columns

Dimitris Maragkos
2022-10-25

仅绑定 PrimaryContact 以避免表达式中的空引用,并使用模板来定义您实际希望列显示的内容:

.Columns(columns =>
{
    columns.Bound(x => x.PrimaryContact).Template(x =>
    {
        #= x.PrimaryContact != null ? x.PrimaryContact.EmailAddress : string.Empty#
    })
})

这与 Dimitris 的回答类似(我输入时没有看到他的回答)。不同之处在于我的模板是在服务器端呈现的,而他的模板是在客户端呈现的。它的工作原理有什么不同吗?

NigelK
2022-10-25