在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工作(即下拉菜单),所以我认为它没有任何具体的工作......
答案 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);
}
这几乎就是我绑定的方式所以它应该有效。