【问题标题】:Kendo Grid Data Not Binding剑道网格数据未绑定
【发布时间】:2015-08-23 21:17:22
【问题描述】:

我正在尝试将 Kendo Grid 与来自 SQL 的数据绑定。该表出现但未填充任何数据。我无法弄清楚出了什么问题。感谢所有帮助!

这是我的控制器:

public ActionResult Test()
{
    return View();
}

[HttpGet]
public ActionResult Test_Read([DataSourceRequest] DataSourceRequest request)
{
    return Json(GetCountries().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}

[NonAction]
private IQueryable<CountryViewModel> GetCountries()
{
    return from user in database.Countries
           select new CountryViewModel
           {
               Id = user.Id,
               Name = user.Name,
           };
}

这是我的 ViewModel:

public class CountryViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

这是实体模型数据向导自动生成的模型:

public partial class Country
{
    public Country()
    {
        this.Cities = new HashSet<City>();
        this.Regions = new HashSet<Region>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public System.DateTime CreatedDate { get; set; }

    public virtual ICollection<City> Cities { get; set; }
    public virtual ICollection<Region> Regions { get; set; }
}

这是视图:

@(Html.Kendo().Grid<Traveler.Models.CountryViewModel>()
      .Name("grid")
      .DataSource(dataSource => dataSource
          .Ajax()
          .PageSize(20)
          .Model(model => model.Id(p => p.Id))
          .Read(read => read.Action("Test_Read", "Home").Type(HttpVerbs.Get))
       )

      .Columns(columns =>
      {
          columns.Bound(user => user.Id).Width(100);
          columns.Bound(user => user.Name).Width(100);
      })
      .Pageable()
      .Sortable()
      .ColumnMenu()
      .Resizable(resize => resize.Columns(true))
      .Scrollable()
      .HtmlAttributes(new { style = "height:100%;" })
      .Filterable()
      .Reorderable(reorder => reorder.Columns(true))
      .ColumnMenu()
      .Pageable(p => p.Enabled(true).Input(true).PageSizes(new[] { 10, 20, 50 }).Refresh(true))
)

【问题讨论】:

  • 几个问题 1) 首先击中的是控制器吗? 2)如果返回的是什么数据(您是否检查过提琴手或开发人员工具等)?
  • 您的网格中有两个Pageable()s 和ColumnMenu()s。删除多余的。
  • 我可能缺少参考资料吗?

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


【解决方案1】:

@(Html.Kendo().Grid<Traveler.Models.CountryViewModel>()
      .Name("grid")
     .EnableCustomBinding(true)
      .DataSource(dataSource => dataSource
          .Ajax()
          .PageSize(20)
          .Read(read => read.Action("Test_Read", "Home"))
       )
      .Columns(columns =>
      {
          columns.Bound(user => user.Id).Width(100);
          columns.Bound(user => user.Name).Width(100);
      })
      .Pageable()
      .AutoBind(true)
      .Sortable()
      .Resizable(resize => resize.Columns(true))
      .Scrollable()
      .Filterable()
      .Reorderable(reorder => reorder.Columns(true))
)

我已经更改了一些代码,请检查这是否有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多