简体   繁体   English

将Kendo UI网格绑定到对象列表

[英]Bind Kendo UI Grid to List of objects

The Kendo UI Grid just renders the column headers. Kendo UI网格仅呈现列标题。

Grid does not render the actual data rows in the grid. 网格不呈现网格中的实际数据行。

Here is my code. 这是我的代码。

 public class CalculatorController : Controller
{

    public ActionResult TimberData_Read()
    {
        var grades = new List<TimberGrades>();
        grades.Add(new TimberGrades() { TimberGrade = "C14", BendingParallelToGrain = 4.1 });
        grades.Add(new TimberGrades() { TimberGrade = "C16", BendingParallelToGrain = 5.3 });

        var result = grades.AsQueryable();
        return Json(result);
    }
}

public class TimberGrades
{
    public string TimberGrade { get; set; }
    public double BendingParallelToGrain { get; set; }

    public TimberGrades()
    {
        TimberGrade = "C14";
        BendingParallelToGrain = 4.1;
    }
}

Inside my view, I try to render the Grid as follows: 在我的视图内部,我尝试如下渲染Grid:

<div id="DivTimberGradeGrid">
    @(Html.Kendo().Grid<TimberBeamCalculator.Models.TimberGrades>()
        .Name("TimberGradeGrid")
        .DataSource(ds => ds
                        .Ajax()
                        .Read(r => r.Action("TimberData_Read", "Calculator"))   
        )
        .Columns(c=> 
                    {
                        c.Bound(t => t.TimberGrade);
                        c.Bound(t => t.BendingParallelToGrain);
                    }
        )
    )


</div>

I just figured it out myself. 我自己弄清楚了。

In my controller class: 在我的控制器类中:

using Kendo.Mvc.Extensions;

.....

        public ActionResult TimberData_Read([DataSourceRequest]DataSourceRequest request)
        {
            var grades = new List<TimberGrades>();
            grades.Add(new TimberGrades() { TimberGrade = "C14", BendingParallelToGrain = 4.1 });
            grades.Add(new TimberGrades() { TimberGrade = "C16", BendingParallelToGrain = 5.3 });

            IQueryable<TimberGrades> res = grades.AsQueryable<TimberGrades>();
            DataSourceResult res1 = res.ToDataSourceResult(request);
            return Json(res1, JsonRequestBehavior.AllowGet);
        }

....

and in the view


        <p>
            <div id="DivTimberGradeGrid">
                @(Html.Kendo().Grid<TimberBeamCalculator.Models.TimberGrades>()
                    .Name("TimberGradeGrid")
                    .DataSource(ds => ds
                                    .Ajax()
                                    .Read(r => r.Action("TimberData_Read", "Calculator"))   
                    )
                    .Columns(c=> 
                            {
                                c.Bound(t => t.TimberGrade);
                                c.Bound(t => t.BendingParallelToGrain);
                            }
                    )
                )


            </div>
        </p>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM