为什么客户端模板不能运行MVC Kendo

问题描述 投票:0回答:1

代码是网格仍然显示的标记,就像应用客户端模板之前一样。它在控制台中也有很多错误。我以为我按照文档。我还需要将前三列的操作链接添加到该计数的详细信息页面。提前谢谢您的任何希望将不胜感激

  @(Html.Kendo().Grid<cigaretteLogMVC.Models.CigaretteCountData>() // Specify the type of the grid
            .Name("Grid")
            .BindTo((IEnumerable<cigaretteLogMVC.Models.CigaretteCountData>)ViewBag.counts)
            .Columns(columns =>
            {
                columns.Bound(c => c.createdDate);
                columns.Bound(c => c.countDate);
                columns.Bound(c => c.bookQty);
                columns.Bound(c => c.actualCount).ClientTemplate("# if (edited == true ){#" +
                    "<span class='edited'>#:actualCount#</span>" +
                "# } #");
                columns.Bound(c => c.bookVsActualCount).ClientTemplate("# if (bookVsActualCount > @ViewBag.max || bookVsActualCount < @ViewBag.min ){#" +
                    "<span class='OutOfBounds'>#:bookVsActualCount#</span>" +
                "# } #");
                columns.Bound(c => c.dailyDif);
                columns.Bound(c => c.Notes).ClientTemplate(
                     "# if (Notes != null) { #" +
                    "<span class=\"k-icon k-i-tick\"></span>" +
                    "# } #"
                    );
            })
)

这些是错误

未捕获的错误:模板无效:'#= data && data.dirty && data.dirtyFields && data.dirtyFields ['createdDate']? '':''

:data.createdDate==null?'':data.createdDate#

k-dirty-cell':''#“role ='gridcell'>#= data && data.dirty && data.dirtyFields&& data.dirtyFields ['countDate']?'':''

:data.countDate==null?'':data.countDate#

k-dirty-cell':''#“role ='gridcell'>#= data && data.dirty && data.dirtyFields&& data.dirtyFields ['bookQty']?'':''

:data.bookQty==null?'':data.bookQty#

k-dirty-cell':''#“role ='gridcell'>#= data && data.dirty && data.dirtyFields&& data.dirtyFields ['actualCount']?'':''## if(edited == true){##:actualCount ##} ## = data && data.dirty && data.dirtyFields&& data.dirtyFields ['bookVsActualCount']?'':''## if(bookVsActualCount> @ ViewBag.max || bookVsActualCount <@ ViewBag.min){##:bookVsActualCount ##} ## = data && data.dirty && data.dirtyFields&& data.dirtyFields ['dailyDif']?'':''

:data.dailyDif==null?'':data.dailyDif#

k-dirty-cell':''#“role ='gridcell'>#= data && data.dirty && data.dirtyFields && data.dirtyFields ['Notes']?'':''## if(Notes!= null){##}#'生成代码:'var $ kendoOutput,$ kendoHtmlEncode = kendo.htmlEncode; with(data){$ kendoOutput =''+(data && data.dirty && data.dirtyFields && data.dirtyFields [' createdDate']?'':'')+''+ $ kendoHtmlEncode(data.createdDate == null?'':data.createdDate)+''+(data && data.dirty && data.dirtyFields&& data.dirtyFields [ 'countDate']?'':'')+''+ $ kendoHtmlEncode(data.countDate == null?'':data.countDate)+''+(data && data.dirty && data.dirtyFields&& data.dirtyFields ['bookQty']?'':'')+''+ $ kendoHtmlEncode(data.bookQty == null?'':data.bookQty)+''+(data && data.dirty && data.dirtyFields&& data。 dirtyFields ['actualCount']?'':'')+''; if(edited == true){; $ kendoOutput + =''+ $ kendoHtmlEncode(actualCount)+'';}; $ kendoOutput + =''+( data && data.dirty && data.dirtyFields && data.dirtyFields ['bookVsActualCount']?'':'')+''; if(bookVsActualCount) > @ ViewBag.max || bookVsActualCount <@ ViewBag.min){; $ kendoOutput + =''+ $ kendoHtmlEncode(bookVsActualCount)+''; }; $ kendoOutput + =''+(data && data.dirty && data.dirtyFields && data.dirtyFields ['dailyDif']?'':'')+''+ $ kendoHtmlEncode(data.dailyDif == null?'' :data.dailyDif)+''+(data && data.dirty && data.dirtyFields && data.dirtyFields ['Notes']?'':'')+''; if(Notes!= null){; $ kendoOutput + =''; }; $ kendoOutput + ='';}返回$ kendoOutput;'在Object.compile(kendo.all.js:198)的Object.proxy [作为模板](jquery-3.3.1.js:10268)at init._tmpl(kendo.all.js:63753)at init._templates( kendo.all.js:63850)在HTMLDivElement的新init(kendo.all.js:59343)。 (kendo.all.js:2448)位于jQuery.fn.init的jQuery.fn.init.each(jquery-3.3.1.js:189)的Function.each(jquery-3.3.1.js:354)。 e.fn。(:58432 / CigaretteGrid /匿名函数)[作为kendoGrid](http://localhost:58432/Scripts/kendo/kendo.all.min.js:26:4889)在HTMLDocument。 (StoreGrid storenum = 0001432:40)

c# asp.net-mvc kendo-asp.net-mvc
1个回答
0
投票

这就是我发现的有效方法

    @(Html.Kendo().Grid(Model) // Specify the type of the grid
        .Name("Grid")
        .CellAction(cell =>
        {
             if (cell.Column.Title.Equals("Created Date") || 
                    cell.Column.Title.Equals("Count Date"))
            {
                cell.HtmlAttributes["onclick"] = "goToCount('" + 
                cell.DataItem.ID + "','" + cell.DataItem.countDate + "')";
            }
            if (cell.Column.Title.Equals("Actual Count"))
            {
                if (cell.DataItem.edited)
                {
                    cell.HtmlAttributes["class"] = "edited";
                }
            }

            if (cell.Column.Title.Equals("Book vs Actual Qty"))
            {
                if(cell.DataItem.bookVsActualCount > Convert.ToInt32(Session["MaxAlert"]) || cell.DataItem.bookVsActualCount < Convert.ToInt32(Session["MinAlert"]))
                {
                    cell.HtmlAttributes["class"] = "OutOfBounds";
                }
            }
            if (cell.Column.Title.Equals("Notes"))
            {
                if (cell.DataItem.Notes != null && cell.DataItem.Notes != "")
                {
                    cell.HtmlAttributes["onclick"] = "showNotes('" + 
                                            cell.DataItem.Notes + "')";
                    cell.Text = " ";
                    cell.HtmlAttributes["class"] = "far fa-comment-alt";
                }
            }

        })
        .Columns(columns =>
        {
            columns.Bound(c => c.createdDate).Title("Created Date");
            columns.Bound(c => c.countDate).Title("Count Date");
            columns.Bound(c => c.bookQty).Title("Book Qty");
            columns.Bound(c => c.actualCount).Title("Actual Count");
            columns.Bound(c => c.bookVsActualCount).Title("Book vs Actual Qty");
            columns.Bound(c => c.dailyDif).Title("Daily Difference Qty");
            columns.Bound(c => c.Notes).Title("Notes");

        })
     )
     <script>
      function goToCount(id, date) {        
       alert(id);
       //redirect here
     }

      function showNotes(notes) {
      alert(notes);
      //maybe launch a modal here 
     }
 </script>
© www.soinside.com 2019 - 2024. All rights reserved.