我有一个网页,其中包含一些Kendo控件,例如下拉列表和按钮,但是添加 Grid 会导致问题。
@(Html.Kendo().Grid(Model).Name("grid").Columns(columns =>
{
columns.Bound(stuff => stuff.FirstColumn).Width(200);
columns.Bound(stuff => stuff.SecondColumn).Width(200);
columns.Bound(stuff => stuff.HiddenColumn).Hidden;
columns.Bound(stuff => stuff.ThirdVisibleColumn).Width(200);
})
.Pagable()
.Sortable()
)
在设计时,.Bound方法以红色字体显示工具提示无法解析符号' ,以及 Stuff (例如.FirstColumn)也是红色的,带有类似的消息。
编译错误
描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。
编译器错误消息:CS1977:无法将lambda表达式作为动态调度操作的参数,而不先将其转换为委托或表达式树类型
这个问题首先出现在另一个项目中,因此作为测试我创建了一个新的Telerik项目,并添加了重现问题所需的最低要求,希望新创建的项目能够突出显示原始项目失败的位置。没有这样的运气。
提前致谢。
答案 0 :(得分:0)
如果你像这样传递模型,它需要是IEnumerable(或类似)类型。
这对我有用:
@model IEnumerable<SomeModel>
@(Html.Kendo().Grid(Model)
.Name("grid")
.Columns(columns =>
{
columns.Bound(stuff => stuff.FirstColumn).Width(200);
columns.Bound(stuff => stuff.SecondColumn).Width(200);
columns.Bound(stuff => stuff.HiddenColumn).Hidden();
columns.Bound(stuff => stuff.ThirdVisibleColumn).Width(200);
})
.Pageable()
.Sortable()
)
答案 1 :(得分:0)
你也可以通过以下模型:
@(Html.Kendo().Grid<SomeModel>().Name("grid")
.DataSource(src => src.Ajax().Read(read => read.Action("Action", "Controller"))
.Columns(col =>
{
col.Bound(e => e.Name);
col.Bound(e => e.Age);
col.Bound(e => e.ID);
})
.Selectable()
.Scrollable()
)