私はKendoTreeviewを持っています。私は MVC4 と KendoUI の最新のものを使用しています。私はSQLサーバーとC#も使用しています
「MyDB」というデータベースと、そのデータベースに「Products」という単一のテーブルがあるとします。
テーブル「製品」: ID -- int -- pk 名前 -- nvarchar(50) 親 -- int -- FK
製品にサブ製品を持たせたい...
わかりました、今私が持っているコントローラーで:
 public JsonResult ProductsForTreeView(int? id)
    {
         var dataContext = new ProductsDBContext();
         var products = from e in dataContext.Products
               where (  id.HasValue ? e.Parent == id : e.Parent == 0) 
               select new
                          {
                              id = e.Id,
                              Name = e.Name,
                              hasChildren = e.Id
                          };
 return Json(products , JsonRequestBehavior.AllowGet);
    }
そしてビュー:
@(Html.Kendo().TreeView()
      .Name("treeview")
      .DataTextField("Name")
      .HighlightPath(true)
      .DataSource(dataSource => dataSource
                                    .Read(read => read
                                                      .Action("ProductsForTreeView", "SiteMap")
                                    )
      )
    )
これは機能し、ツリービューがすべてのノードの横に + を表示していることを除いて、ツリービューを正しく表示します(ALMOST!)...子があるかどうかに関係なく。
LINQ を変更するか、JavaScript を使用して、子要素のない "+" を削除する必要があります...
「+」のクラス名は「k-icon k-plus」です。
ツリービューがこの「+」をすべてのノードに追加しないようにするにはどうすればよいですか? 子を持つノードにのみ表示する必要があります。