试图填充telerik网格,但网格一直显示为空

时间:2011-12-24 04:11:40

标签: c# telerik telerik-grid

在Index.cshtml中,我有以下内容:

@{
    Html.Telerik().Grid<hekomaseru.Models.testdbEntities1>("testtable")
        .Name("grid1")
        .Pageable()
        .Sortable()
        .Filterable()
        .Groupable()
        .Render();
}

在HomeController.cs中,我这样做:

    public ActionResult Index()
    {
        List<int> abc = new List<int>() { 1, 2, 3, 4, 5 };
        ViewData["testtable"] = abc;

        return View();
    }

出于某种原因,虽然当一切都加载时,网格总是空的(没有要显示的记录)。任何想法为什么它不起作用?

我还有其他的telerik工作(即下拉菜单),所以我认为它没有任何具体的工作......

2 个答案:

答案 0 :(得分:2)

网格需要绑定到对象列表。 int列表不起作用,因为它们是值类型。字符串列表将像莱斯特说的那样工作,但唯一的属性是长度。如果你想要一个int列表,你可以添加一个这样的类。

public class Numbers
{
  public Numbers(int number)
  {
    Num = number;
  }
  public int Num
  {
    get;
    set;
  }
}

然后在Controller中。

public ActionResult Index()
{
  List<Numbers> abc = new List<Numbers>();
  abc.Add(new Numbers(1));
  abc.Add(new Numbers(2));
  abc.Add(new Numbers(3));
  abc.Add(new Numbers(4));
  abc.Add(new Numbers(5));

  return View(abc);
}

视图

@model List<Numbers>

@{
    Html.Telerik().Grid(Model)
        .Name("grid1")
        .Pageable()
        .Sortable()
        .Filterable()
        .Groupable()
        .Render();
}

要使网格更有趣,只需向Numbers类添加更多属性。

答案 1 :(得分:1)

我只是简单地使用了Telerik MVC控件,但我从未像这样绑定到ViewData。你能把它改成:

@model IList<int>

@{
    Html.Telerik().Grid(Model)
        .Name("grid1")
        .Pageable()
        .Sortable()
        .Filterable()
        .Groupable()
        .Render();
}

你的控制器:

public ActionResult Index()
{
    List<int> abc = new List<int>() { 1, 2, 3, 4, 5 };

    return View(abc);
}

这几乎就是我绑定的方式所以它应该有效。