Telerik MVC网格在排序时丢失了渲染的html

时间:2012-04-07 19:17:59

标签: asp.net-mvc telerik telerik-grid

我的ASP MVC项目中有一个telerik网格。大多数列都绑定到DB中的数据,但是一列需要包含依赖于列记录值的图像图标。为此,我使用包含IF ELSE的列模板。 IF ELSE根据列记录的值为具有特定图像引用(带有背景图像的css类)的html写入。这项工作非常适合负载。但是一旦我对网格执行排序,所有在模板化列中呈现的html都会丢失。代码如下。有没有办法做到这一点,还是我必须重新考虑如何进行排序?

<div id="gridArea" >

    @{Html.Telerik().Grid(@Model)
        .Name("Grid")
        .Columns(columns =>
             { columns.Template(
                 @<text>
                     @if (@item.Q1 == "On Plan")
                     {<div class="scorecardSymbol onPlanSymbol"></div>}
                     else if (@item.Q1 == "Off Plan")
                     {<div class="scorecardSymbol offPlanSymbol"></div>}
                     else if (@item.Q1 == "Serious Constraints")
                     {<div class="scorecardSymbol seriousConstraintsSymbol"></div>}
                     else if (@item.Q1 == "Not Started")
                     {<div class="scorecardSymbol notStartedSymbol"></div>}
                     else
                     {<span>NA</span> }
                 </text>)

                .HeaderTemplate(
                     @<text> 
                        <span style="color:red">Quarter Status</span>
                     </text>)
                .Width(175);
             columns.Bound("Off_Plan").Width(100).Title("Off Plan");
           })
       .DataBinding(dataBinding =>
         {
            dataBinding.Server().Select("Index", "Home", new { ajax = true });
            dataBinding.Ajax().Select("_FirstLook", "Home").Enabled(true);
          })
       .Render();
    }
</div>

1 个答案:

答案 0 :(得分:0)

服务器端模板在ajax绑定模式下不起作用。在这种情况下,您需要使用客户端模板。您可以在此帮助主题中找到更多信息:http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-grid-troubleshooting.html#ClientTemplates