【问题标题】:Kendo Grid, displaying a list with client templateKendo Grid,显示带有客户端模板的列表
【发布时间】:2013-06-09 13:15:40
【问题描述】:

我正在尝试使用客户端模板中的 for 循环让 Kendo 网格显示值列表,但当我尝试它时它不断使网格崩溃。网格如下:

@( Html.Kendo().Grid<ProjectXMVC3.ViewModel.PersonnelIndexViewModel>()
    .Name("Personnel")
    .Columns(columns =>
    {
        columns.Bound(o => o.AssetId).Hidden();
        columns.Bound(o => o.Num).Hidden();
        columns.Bound(o => o.Name).Width(150);
        columns.Bound(o => o.Email).Width(200);
        columns.Bound(o => o.AssetSubType).ClientTemplate("# var j = AssetSubType.length; for(var i = 0; i < j; i++){# #: AssetSubType[i] #  #}#"  );
        columns.Bound(o => o.DateBirth).Format("{0:d}").Width(100);
        columns.Bound(o => o.Country).Title("Nationality").Width(200);
        columns.Command(com => {
            com.Custom("Details").Click("onPersonSelected");
            com.Custom("Block").Click("onBlocked");
        });
    })
    .DataSource(d => d
        .Ajax()
        .Model(model => model.Id(p => p.AssetId))
        .Read(read => read.Action("Read_Personnel", "Personnel"))
    )

)

我可以使用 if 语句让单个 AssetSubType 显示,但是一旦我进入循环,它就会抛出一个双六并放弃。 AssetSubType 是 ViewModel 的 IEnumerable。

我已经完成了任何排序、过滤等操作。我也是剑道新手。

非常感谢任何帮助......

【问题讨论】:

    标签: asp.net-mvc-3 kendo-grid


    【解决方案1】:

    我遇到了同样的问题,用这样的方法解决了:

    首先添加一个新脚本并在其中移动 for 循环:

    <script type="text/javascript">
        function printAssetSubType(AssetSubType) {
            var result = "";
            var j = AssetSubType.length; 
            for(var i = 0; i < j; i++) {
                result += AssetSubType[i];
            }
            return result;
        }
    </script>
    

    然后从列本身引用此脚本:

    columns.Bound(o => o.AssetSubType).ClientTemplate("#=printAssetSubType(AssetSubType)#");
    

    【讨论】:

      【解决方案2】:

      您还可以在 PersonnelIndexViewModel 类中添加一个新字段,并在控制器中准备要在服务器端显示的字符串。

      控制器:

      myViewModel.AssetSubTypeString = String.Join(", ", myAssetSubTypes);
      

      查看:

      columns.Bound(o => o.AssetSubTypeString);
      

      【讨论】:

        猜你喜欢
        • 2013-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多