加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 用于Kendo网格模板中的循环

发布时间:2020-12-16 04:25:05 所属栏目:asp.Net 来源:网络整理
导读:我对Kendo Grid来说遇到了大麻烦. 如果我使用for循环作为客户端模板 col.Bound(m = m.Compteurs) .ClientTemplate("# for (var i=0;i4;i++) { console.log(i) } #"); 我永远不会增加. 与循环中的while循环和增量相同. 怎么解决这个? 谢谢 编辑 – 网格的完
我对Kendo Grid来说遇到了大麻烦.

如果我使用for循环作为客户端模板

col.Bound(m => m.Compteurs)
    .ClientTemplate("# for (var i=0;i<4;i++) { console.log(i) } #");

我永远不会增加.
与循环中的while循环和增量相同.

怎么解决这个?

谢谢

编辑 – 网格的完整声明:

@(Html.Kendo().Grid<EAGLE.Models.ParamUf>()
.Name("ParamGrid")
.Columns(col =>
    {
        col.Bound(m => m.Groupement);
        col.Bound(m => m.Etablissement).ClientTemplate("#= Etablissement.EtablissementName #");
        col.Bound(m => m.Service).ClientTemplate("#= Service.ServiceName #");
        col.Bound(m => m.Discipline).ClientTemplate("#= Discipline.DisciplineName #");
        col.Bound(m => m.Unite).ClientTemplate("#= Unite.UniteName #");
        col.Bound(m => m).ClientTemplate(Html.Partial("_Tel").ToHtmlString());
        col.Bound(m => m.Unite.TypeHebergement).Title("Hébergement");
        col.Bound(m => m.Installe);
        col.Bound(m => m.Ferme);
        col.Bound(m => m.Compteurs).ClientTemplate("# for (var i=0;i<4;i++) { console.log(i) } #");        
        col.Command(commands =>
        {
            commands.Edit().UpdateText("Mettre à jour").CancelText("Annuler").Text("Edit");
            commands.Destroy().Text("Suppr.");
        }).Title(string.Empty).Width(160);

    }
)
.DataSource(data => data
                .Ajax()
                .Read(read => read.Action("Param_Read","Param",new { entityCode = @ViewBag.Code,entityType = @ViewBag.Type }).Data("filterUnit"))
                    .Model(m => 
                    {
                        m.Id(a => a.Unite.UniteCode);
                        m.Field(a => a.Etablissement).DefaultValue(new EAGLE.Models.Etablissement());
                        m.Field(a => a.Service).DefaultValue(new EAGLE.Models.Service());
                        m.Field(a => a.Discipline).DefaultValue(new EAGLE.Models.Discipline());
                        m.Field(a => a.Unite).DefaultValue(new EAGLE.Models.Unite());
                    }) 
                .Create(cre => cre.Action("Param_Create","Param"))
                .Update(upd => upd.Action("Param_Update","Param"))
                .Destroy(des => des.Action("Param_Destroy","Param"))
                .Batch(false)
                .ServerOperation(false))
.Pageable(pager => pager
    .Enabled(false)        
    .Messages(m => m.Display("Nombre total d'hébergement : {2}"))
    .Messages(m => m.Empty("Pas d'hébergement."))
    .PreviousNext(false)
    .Input(false)
    .Numeric(false))   
.ToolBar(toolbar => { toolbar.Create(); })
.Editable(ed => ed.Mode(GridEditMode.PopUp).TemplateName("_ParamEdit"))
.Events(e => e.DataBound("onDatabound"))
)

解决方法

对于有此问题的下一个,您可以通过不同的方式解决.

第一种方式(棘手):
添加javascript函数增量

function increment(a) 
{
   return a++;
}

并在模板中使用它

col.Bound(m => m.Compteurs)
    .ClientTemplate("# for (var i=0;i<4;increment(i)) { console.log(i) } #");

c#代码的第二种方式(在col.Bound之间包含这个):

int i = 0;
    foreach (EAGLE.Models.Compteur c in ViewBag.Compteurs)
    {
        col.Bound(m => m.Compteurs[i].Dispo).Title(c.NomCourt)
            .HtmlAttributes(new { style = String.Format("background-color:#{0}",c.Color),@class = "compteur" })
            .HeaderTemplate("<img class='iconeHeader' src='data:image/png;base64," + c.Picto + "' title='"+ c.Nom +"' />");
        i++;
    }

第三种方式(马修的答案):

var template = "# for (var i=0;i<4;i++) { console.log(i) } #";
 var plusEncoded= System.Web.HttpUtility.UrlEncode("+"); 
 template = Regex.Replace(template,@"[+]",plusEncoded);
 col.Bound(m => m.Compteurs).ClientTemplate(template);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读