0

質問: この Telerik ツリービュー コントロールを、
メニュー表示名: Locations の Telerik メニュー項目でレンダリングする必要があります。
メニュー名が「場所」のテレリック メニュー項目にTelerik ツリー ビュー コントロール (以下の正確なコード) を配置する方法を教えてください。

例: 説明のために、'Locations' は、
理解できるように破線で囲まれたメニュー項目です。TreeView コントロールは、Locations をクリックしたときにメニュー項目 (リスト) に表示されるコントロールです。


場所


 TreeView Control

メニュー項目の [場所] をクリックすると、ツリービュー コントロールが表示されます。

これはテレリック コントロールのコードです。

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();  

テレリック メニューのコード。

        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」(テキスト項目) がない場合、ツリービュー コントロールはメニュー項目リストに表示されません。

4

1 に答える 1

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();
于 2012-09-20T19:12:14.753 に答える