0

我正在使用 MVC 中的 treeView 数据绑定,我收到以下错误:

错误 1 ​​不能将 lambda 表达式用作动态分派操作的参数,除非先将其转换为委托或表达式树类型

当我尝试运行演示代码时:

 <% Html.Telerik().TreeView()


 .Name("TeleTreeView")
    .BindTo(Model, mappings => 
    {
         mappings.For<Category>(binding => binding
        .ItemDataBound((item, category) =>
        {
            item.Text = category.CategoryName;
        })
        .Children(category => category.Products));
         mappings.For<Product>(binding => binding
        .ItemDataBound((item, product) =>
        {
            item.Text = product.ProductName;
       }));
})
   .Render(); %>

我读过也许我错过了一个程序集,所以我添加了 Linq 一个:

<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

仍然遇到同样的问题,有什么建议吗?

4

2 回答 2

1
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Category>>" 

这就是答案,通过 System.Web.Mvc.ViewPage 传递了什么。应该是我们正在映射的类。

于 2011-04-21T01:06:45.817 回答
0
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<GridWithWindow.Jar>>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    AddEditUser
</asp:Content>

    <% using (Html.BeginForm("AddEditUser", "JarUser", FormMethod.Post ))
       {%>

        <% List<TreeViewItem> checkedNodes = ViewData["TreeView1_checkedNodes"] as
            List<TreeViewItem>; %>


    <%= Html.Telerik().TreeView()
    .Name("Tree")
    .ShowCheckBox(true)
    )
    .BindTo(Model, mappings =>
    {
        mappings.For<GridWithWindow.Jar>(binding => binding
            .ItemDataBound((item, jag) =>
                {
                    item.Text = jag.TreeName;
                    item.Value = jag.TreeName;

                    if (checkedNodes != null)
                    {
                        var checkedNode = checkedNodes
                                            .Where(e => e.Value.Equals("ddd"))
                                            .FirstOrDefault();
                        item.Checked = checkedNode != null ? checkedNode.Checked : false;
                    }
                    item.Expanded = true;

                })
                .Children(jag => jag.FirstLevelIList));
        mappings.For<GridWithWindow.Jar.FirstLevel>(binding => binding
            .ItemDataBound((item, frst) =>
                {
                    item.Text = frst.FirstLevelName;
                    item.Value = frst.FirstLevelName;
                })
                .Children(frst => frst.SecondLevelList));
        mappings.For<GridWithWindow.Jar.FirstLevel.SecondLevel>(binding => binding
            .ItemDataBound((item, scnd) =>
            {
                item.Text = scnd.SecondLevelName;
                item.Value = scnd.SecondLevelName;
            })
             .Children(scnd => scnd.ThirdlevelList));
        mappings.For<GridWithWindow.Jar.FirstLevel.SecondLevel.Thirdlevel>(binding => binding
            .ItemDataBound((item, thrd) =>
            {
                item.Text = thrd.ThirdlevelName;
                item.Value = thrd.ThirdlevelName;
            })
             .Children(thrd => thrd.AEDV_List));
        mappings.For<GridWithWindow.UserAcces>(binding => binding
            .ItemDataBound((item, acs) =>
            {
                item.Text = acs.UserAccesName;
                item.Value = acs.UserAccesName;
            })
           );
    })%>
    <input type="submit" value="GO" id="btn" />
    <input type="button" id="pst" value="do post back" onclick="javascript:__doPostBack()" />
    <%} %>

    <style type="text/css">
        .event-log-wrap
        {
            float: left;
            display: inline;
            width: 468px;
            margin-left: 10em;
        }
    </style>

</asp:Content>

您需要正确设置类结构,否则不会呈现树视图(子项的类结构)

页面应继承:

Inherits="System.Web.Mvc.ViewPage<IEnumerable<GridWithWindow.Jaguar>您班级的IEnumerable列表/ obj

于 2011-07-24T06:11:40.950 回答