在Kendo MVC Grid ClientTemplate上绑定字段为空时输出备用字段

时间:2014-11-11 19:55:27

标签: vb.net kendo-ui kendo-grid kendo-asp.net-mvc

我在kendo MVC网格中有一个单元格,我想根据一个数据的值来取两个数据字段中的一个:

@(Html.Kendo().Grid(Of RTFVM)().Name("RealTimeFinancials") _
 .Columns(Sub(c)
                  c.Bound(Function(x) x.Line.LineItem).HtmlAttributes(New With {.style = "text-align:left"})
                  c.Bound(Function(x) x.Line.Months(0).Total).Format("0:#,##0}").ClientTemplate("#if(data.Line.Months[0].Message == null) {data.Line.Months[0].Total} else {data.Line.Months[0].Message} #")

          End Sub) _

无论空比较的结果如何,单元格每次都呈现为空白。我一定错过了一些明显的东西!

1 个答案:

答案 0 :(得分:2)

#...#模板标记只执行JS但不输出任何内容。

而是尝试#:...##=...#,它们都会将值输出回HTML或此模板:

#if(data.Line.Months[0].Message == null) {##:data.Line.Months[0].Total##} else {##:data.Line.Months[0].Message##}#

(在1行看起来很奇怪,但是如果你要插入换行符会更有意义:)

#if(data.Line.Months[0].Message == null) {#
  #:data.Line.Months[0].Total#
#} else {#
  #:data.Line.Months[0].Message#
#}#

我认为这个模板也可能有效:

#: data.Line.Months[0].Message ?? data.Line.Months[0].Total #

Total为假的情况下,哪个会使用null-coalescing运算符来使用Message