【问题标题】:Custom Client Template Telerik Grid自定义客户端模板 Telerik Grid
【发布时间】:2012-10-11 18:21:33
【问题描述】:

我是使用 Telerik Grid 的新手,基本上我在这里想要完成的是以下场景,我有一个包含一些字段的表单,并通过 ajax 在我的控制器上调用另一个操作来生成模型到具有以下网格的部分视图,我的问题是我需要根据某些业务逻辑创建一些操作,我知道我可以使用列模板来做到这一点,因为我使用 ajax 绑定它“松散”了我的模板,在互联网上环顾四周,我发现您可以使用 js 函数生成链接,我的问题是不是那种凌乱的?我在服务器和客户端上复制相同的业务逻辑,必须有更好的方法来完成这个吗?

  Html.Telerik().Grid(Model)
      .Name("Grid")
      .DataBinding(binding => binding.Ajax().OperationMode(GridOperationMode.Client))
      .Columns(column =>
      {
          column.Bound(c => c.Id).Title("Id").Width(30);
          column.Bound(c => c.Status);
          column.Bound(c => c.DateReg);
          column.Template(
              @<text>
                   <div class="ActionsProvGrid">
                       <a href="@Url.Action("SomeAction", "Controller", new {id = item.id})">
                           <img src="../../Content/icons/ViewMore.png" alt="ViewMore" />
                       </a>
                       @if (@item.Status.Equals("ACT"))
                       {
                           <a href="@Url.Action("SomeOtherAction", "Controller", new {idOportunidad = item.id})">
                               <img src="../../Content/icons/invoice.png" alt="invoice"/>
                           </a>
                       }

                   </div>                                                      
               </text>
              ).ClientTemplate("<#= GenearteIcons(data)  #>");
      })
    .Sortable()

【问题讨论】:

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


    【解决方案1】:

    作为一种解决方案,您可以在模型上定义封装业务逻辑结果的属性:

    public bool DoesStatusEqualToAct {
      get
      {
        return (code that determines if it's true);
      }
    }
    

    在生成链接 html 的 JavaScript 函数中,您可以访问此属性:

    function GenerateIcons(data){
        var html = '';
        if(data.DoesStatusEqualToAct){
           html = 'version 1';
        }
        else{
           html = 'version 2';
        }
       return html;
    }
    

    【讨论】:

    • Thx @Rustam 这可能是一种解决方法,但我需要在服务器端和一个客户端声明模板两次,还有另一种方法吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多