Telerik菜单在菜单项(列表)中显示telerik Treeview

时间:2012-09-20 18:23:44

标签: asp.net-mvc telerik telerik-mvc

问题:  我需要在带有
的telerik菜单项中呈现此Telerik树视图控件  菜单显示名称:位置。你能告诉我如何放置Telerik Tree视图 控制(下面的确切代码)到telerik菜单项,菜单名称为:'Locations'

实施例: 出于说明目的,“位置”是为您的边界设置的菜单项 通过虚线理解。 TreeView控件是当我单击Locations时将在菜单项(列表)中显示的控件。


位置


 TreeView Control

Treeview控件显示我单击菜单项位置时。

这是telerik控件的代码

Telerik Treeview代码:

     Html.Telerik().TreeView()
                               .Name("TreeView1")
                               .ShowCheckBox(true)
                               .BindTo(Model.SessionProvider.GetAvailableLocations, mappings =>
                            {
                                mappings.For<RegionEntity>(binding => binding
                                    .ItemDataBound((item, region) =>
                                                       {
                                                           item.Text = region.RecordName;
                                                           item.Value = region.ID.ToString();
                                                           //if (checkedNodes != null)
                                                           //{
                                                           //    var checkedNode = checkedNodes.Where(e => e.Value.Equals(employee.EmployeeID.ToString())).FirstOrDefault();
                                                           //    item.Checked = checkedNode != null ? checkedNode.Checked : false;
                                                           //} item.Expanded = true;
                                                       }).Children(location => location.Location));
                                mappings.For<LocationEntity>(binding => binding
                                                                            .ItemDataBound((item, location) =>
                                                                                               {
                                                                                                   item.Text = location.Name;
                                                                                                   item.Value =
                                                                                                       location.Number.ToString();
                                                                                               }));
                            }).Render();  

telerik菜单的代码。

        Html.Telerik().Menu()
                                .OpenOnClick(false)
                                .Name("Locations")
                                .Items(parentItems=>
                                           {
                                               parentItems.Add().Content();

                                           }
                                           )
                                .HtmlAttributes(new { @class = "tab", style = "zIndex:9999;padding-right:3px;" })

                                .Render();   

我几分钟前尝试过以下操作,只要列表中有另一个文本项,树视图控件就会呈现,但它会向右对齐:

<% Html.Telerik().Menu()
             .OpenOnClick(false)
           .Name("locations").HtmlAttributes(new { style = "background-color:transparent;min-height:150px" })
            .HtmlAttributes(new { @class = "tab", style = "zIndex:9999;padding-right:3px;" })
           .Items(items => 
           {
            items.Add()
                 .Text("Locations")
                 .Content(() => 
                 { 
                 %>
                <% Html.Telerik().TreeView()
                       .Name("TreeView1")
                       .ShowCheckBox(true)
                       .BindTo(Model.SessionProvider.GetAvailableLocations, mappings =>
                    {
                        mappings.For<RegionEntity>(binding => binding
                            .ItemDataBound((item, region) =>
                                               {
                                                   item.Text = region.RecordName;
                                                   item.Value = region.ID.ToString();
                                                   //if (checkedNodes != null)
                                                   //{
                                                   //    var checkedNode = checkedNodes.Where(e => e.Value.Equals(employee.EmployeeID.ToString())).FirstOrDefault();
                                                   //    item.Checked = checkedNode != null ? checkedNode.Checked : false;
                                                   //} item.Expanded = true;
                                               }).Children(location => location.Location));
                        mappings.For<LocationEntity>(binding => binding
                                                                    .ItemDataBound((item, location) =>
                                                                                       {
                                                                                           item.Text = location.Name;
                                                                                           item.Value =
                                                                                               location.Number.ToString();
                                                                                       }));
                    }).Render();%>   
                 <% 
                 });
       })
       .Render();

但是如果没有“hello”(文本项),则树视图控件不会显示在菜单项列表中。

1 个答案:

答案 0 :(得分:0)

不确定这是否适用于菜单,但是当我实现嵌套网格时,我使用了一个文本块,其中包含我在DetailView属性中需要的另一个控件。

也许您可以以相同的方式使用Menu Item对象的Text或Content属性。

    Html.Telerik().Grid(model)
    .Name("grid")
    .ClientEvents(events => events.OnRowSelect("grid_onRowSelect"))
    .DataKeys(d => d.Add(a => a.ID).RouteKey(("Id")))
    .Columns(columns =>
            {
                columns.Bound(s => s.Name);
                columns.Bound(s => s.Type);
                columns.Bound(s => s.ID);
            })
    .DetailView(detailView => detailView.Template(
        @<text>
             @(Html.Telerik().Grid(item.T)
                .Name("T_" + item.ID )
                .Columns(columns =>
                {
                    columns.Bound(t => t.TemplateName)
                        .Template(t => Html.ActionLink(t.Name, "Index","Editor", new {id = t.ID},null));
                    columns.Bound(t => t.ID);
                })

             ) 
         </text>
        ))
    .Selectable()
    .Render();