Kendo Treeview远程绑定模板内的c#变量

时间:2013-02-26 10:18:28

标签: c# templates razor kendo-ui kendo-treeview

我正在使用MVC Razor 视图和Kendo Controls

如何保留一个驻留在我的C#代码块中的全局变量,但同时也可以在我的Kendo模板中使用,以便我可以为我获取的每个项目进行更新?

我需要的是:

Kendo Treeview:

@(Html.Kendo().TreeView()
  .Name("DatasourceTreeview")
  .DataTextField("ControlId")
  .DataSource(dataSource => dataSource
  .Read(read => read
    .Action("RetrieveTreeviewItems", "Customizer")
    .Data("submitParams")).Events(e => e.RequestStart("loadParams")))
   .TemplateId("treeview-template")
  )

可变

@ { int globalVariable = 1; }

模板:

<script id="treeview-template" type="text/kendo-ui-template">  
 # switch (item.ControlType) {
     case "control1": #
        globalVariable += 1;
     # break; #
     # case "control2": #
        globalVariable += 2;
     # break; #
     # default: #
        globalVariable += 3;
     # break; #
</script>

结果: 递增 globalVariable

在通过模板并渲染树视图后,我想使用递增的globalVariable。但是C#变量本身在模板中是不可见的。我怎么能;

  • 在C#代码块中初始化变量,然后将其传递给模板
  • 根据检索的数据增加
  • 将其传递回C#代码块

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要创建一个JavaScript变量,因为Kendo Templates只不过是JavaScript代码。方法如下:

<script>
var globalVariable = @globalVariable;
</script>