2011-04-20 68 views
0

我有一个TreeView数据绑定MVC的工作,而且我得到以下错误:问题的TreeView的MVC extention

错误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"/> 

还是有同样的问题,有什么建议吗?

回答

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

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

+0

你应该将此标记为答案。 – 2011-05-06 07:59:35

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你的班级