【问题标题】:Grid Column ClientTemplate not working网格列 ClientTemplate 不起作用
【发布时间】:2014-07-22 16:28:26
【问题描述】:

我有一个层次风格的剑道网格,内部网格似乎不接受客户端模板。 (我剥离了代码无关的网格配置列)
我真的希望客户端模板类似于 <a title="#=AlarmStatusDescription#">#=AlarmStatus#</a> 但每当我在 ClientTemplate 中放置除简单字符串以外的任何内容时,整个网格都无法加载。

我试过了

  • .ClientTemplate("#:AlarmStatus#")
  • .ClientTemplate("#=AlarmStatus#")
  • .ClientTemplate("<div class="myclass"></div>") 带有单独的<script type="text/html" id="myclass">#=AlarmStatus#</script>

    @(Html.Kendo().Grid<AccountModel>()

                .Name("Accounts_#=Id#")
                .Columns(columns =>
                             {
    
    columns.Command(command => command.Custom("Details").Click("showDetails")).Width(75);
    columns.Bound(o => o.AccountName).Width(150);                  
    columns.Bound(o => o.AlarmStatus).Width(100).ClientTemplate("#:AlarmStatus#");`
    
                                 })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .Model(model =>{model.Id(p => p.AccountId);})
                        .Read(read => read.Action("DetailRead", "Csr", new { personId = #=Id#" }))
                    )
                    .Editable(editable => editable.Mode(GridEditMode.PopUp))
                    .ToClientTemplate()
            )
    

【问题讨论】:

    标签: kendo-ui


    【解决方案1】:

    您需要转义尖锐符号 - 外部网格将尝试评估此 "#:AlarmStatus#" 表达式的其他方式。并且由于外部网格很可能没有诸如 AlarmStatus 之类的字段(它是内部网格的属性),所以会有一个例外。如果您像这样转义它,客户端模板应该被外部网格跳过,并由内部网格正确评估。

    .ClientTemplate("\\#= AlarmStatus \\#")
    

    我希望你明白了

    【讨论】:

    • 这正是我想要的
    • 这是正确答案,应该被接受
    【解决方案2】:

    您应该使用:.ClientTemplate("#= AlarmStatus #")。我认为你错过了" 的引号。

    【讨论】:

    • 是的,你说得对,我认为这只是我帖子中的一种类型,我会更正帖子
    • 这是你可以做的另一件很酷的事情。ClientTemplate("#=AlarmStatus#")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多