Asp.net mvc 4 用于MVC的剑道UI:在PanelBar中呈现网格

Asp.net mvc 4 用于MVC的剑道UI:在PanelBar中呈现网格,asp.net-mvc-4,kendo-ui,kendo-grid,kendo-asp.net-mvc,Asp.net Mvc 4,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,MVC4。当我将网格放在剑道UI面板条中时,它无法按预期工作。视图最终不是将网格放在Content()中,而是将自己一次又一次地递归地永远地放在面板中 @(Html.Kendo().PanelBar() .Name("IntroPanelBar") .Items(items => { items.Add() .Text("papering Reports") .Selected(true)

MVC4。当我将
网格
放在剑道UI面板条中时,它无法按预期工作。视图最终不是将
网格
放在
Content()
中,而是将自己一次又一次地递归地永远地放在面板中

@(Html.Kendo().PanelBar()
  .Name("IntroPanelBar")
  .Items(items =>
      {
          items.Add()
               .Text("papering Reports")
               .Selected(true)
               .Expanded(true)
               .Content(() => Html.RenderAction("Grid"));   
为了查看这是否是我的代码,我将网格放在了PanelBar之外,所有的东西都在PanelBar之外的网格中呈现良好:

@{
   Html.RenderAction("Grid");
}

@(Html.Kendo().PanelBar()
  .Name("IntroPanelBar")
  .Items(items =>
      {
          items.Add()
               .Text("papering Reports")
               .Selected(true)
               .Expanded(true)
               .Content("PLAIN TEXT");

解决方案是使用动作的MVCHtmlString输出:

@(Html.Kendo().TabStrip()
  .Name("tabstrip")
  .Items(tabstrip =>
      {
          tabstrip.Add().Text("papering")
                  .Selected(true)
                  .Content(Html.Action("Grid").ToHtmlString());   <---
@(Html.Kendo().TabStrip())
.名称(“tabstrip”)
.Items(tabstrip=>
{
tabstrip.Add().Text(“粘贴”)
.已选择(真)

.Content(Html.Action(“Grid”).ToHtmlString();解决方案是使用操作的MVCHtmlString输出:

@(Html.Kendo().TabStrip()
  .Name("tabstrip")
  .Items(tabstrip =>
      {
          tabstrip.Add().Text("papering")
                  .Selected(true)
                  .Content(Html.Action("Grid").ToHtmlString());   <---
@(Html.Kendo().TabStrip())
.名称(“tabstrip”)
.Items(tabstrip=>
{
tabstrip.Add().Text(“粘贴”)
.已选择(真)

.Content(Html.Action(“Grid”).ToHtmlString());我知道这是一个较老的问题,但当我搜索类似的问题时,它会弹出。可以使用来解决。我的示例显示了一个带有包含网格的选项卡条带的面板

    <div id="panel">
    @(Html.Kendo().PanelBar()
        .Name("panelbar")
        .ExpandMode(PanelBarExpandMode.Single)
        .Items(panelbar =>
            {
                foreach (var a in Model)  {

                    panelbar.Add().Text(a.dom.fileName)
                        .Content(@<div id="tabs">
                            @RenderTabStrip(a)

                        </div>
                );

                }
            })
    )

    @helper RenderTabStrip(DominguezReport.WebInterface.Models.accModelTest a)
{
    @(Html.Kendo().TabStrip()
        .Name("tabs" +a.dom.recordID)
        .Items(tabstrip =>
        {
            tabstrip.Add()
                .Text("Status")
                .Content(@<div>@RenderStatusGrid(a)</div>);

            tabstrip.Add()
                .Text("Errors")
                .Content(@<div>@RenderErrorGrid(a)</div>);
        })
    );
}

     @helper RenderStatusGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
    @(Html.Kendo().Grid(a.drs)
    .Name("Status")
    .Columns(columns=>
                    {
                        columns.Bound(c => c.currentStatus);
                        columns.Bound(c => c.updateTime);
                    })
                    .Scrollable()
      )
}
    @helper RenderErrorGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
    @(Html.Kendo().Grid(a.dre)
    .Name("Errors")
    .Columns(columns =>
    {
        columns.Bound(c => c.errorType);
        columns.Bound(c => c.errorDetail);
        columns.Bound(c => c.updateTime);
    })
    .Scrollable()
)
}

@(Html.Kendo().PanelBar())
.名称(“panelbar”)
.ExpandMode(PanelBarExpandMode.Single)
.项目(面板栏=>
{
foreach(模型中的var a){
panelbar.Add().Text(a.dom.fileName)
.内容(@
@RenderAbstrip(a)
);
}
})
)
@helper RenderTaskStrip(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().TabStrip())
.Name(“制表符”+a.dom.recordID)
.Items(tabstrip=>
{
tabstrip.Add()
.文本(“状态”)
.Content(@@RenderStatusGrid(a));
tabstrip.Add()
.文本(“错误”)
.Content(@@RenderErrorGrid(a));
})
);
}
@helper RenderStatusGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.drs)
.姓名(“身份”)
.列(列=>
{
columns.Bound(c=>c.currentStatus);
columns.Bound(c=>c.updateTime);
})
.Scrollable()
)
}
@helper RenderErrorGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.dre)
.Name(“错误”)
.列(列=>
{
columns.Bound(c=>c.errorType);
columns.Bound(c=>c.errorDetail);
columns.Bound(c=>c.updateTime);
})
.Scrollable()
)
}

我知道这是一个较老的问题,但当我搜索类似的问题时,它会弹出。可以使用来解决。我的示例显示了一个带有包含网格的选项卡条的面板

    <div id="panel">
    @(Html.Kendo().PanelBar()
        .Name("panelbar")
        .ExpandMode(PanelBarExpandMode.Single)
        .Items(panelbar =>
            {
                foreach (var a in Model)  {

                    panelbar.Add().Text(a.dom.fileName)
                        .Content(@<div id="tabs">
                            @RenderTabStrip(a)

                        </div>
                );

                }
            })
    )

    @helper RenderTabStrip(DominguezReport.WebInterface.Models.accModelTest a)
{
    @(Html.Kendo().TabStrip()
        .Name("tabs" +a.dom.recordID)
        .Items(tabstrip =>
        {
            tabstrip.Add()
                .Text("Status")
                .Content(@<div>@RenderStatusGrid(a)</div>);

            tabstrip.Add()
                .Text("Errors")
                .Content(@<div>@RenderErrorGrid(a)</div>);
        })
    );
}

     @helper RenderStatusGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
    @(Html.Kendo().Grid(a.drs)
    .Name("Status")
    .Columns(columns=>
                    {
                        columns.Bound(c => c.currentStatus);
                        columns.Bound(c => c.updateTime);
                    })
                    .Scrollable()
      )
}
    @helper RenderErrorGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
    @(Html.Kendo().Grid(a.dre)
    .Name("Errors")
    .Columns(columns =>
    {
        columns.Bound(c => c.errorType);
        columns.Bound(c => c.errorDetail);
        columns.Bound(c => c.updateTime);
    })
    .Scrollable()
)
}

@(Html.Kendo().PanelBar())
.名称(“panelbar”)
.ExpandMode(PanelBarExpandMode.Single)
.项目(面板栏=>
{
foreach(模型中的var a){
panelbar.Add().Text(a.dom.fileName)
.内容(@
@RenderAbstrip(a)
);
}
})
)
@helper RenderTaskStrip(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().TabStrip())
.Name(“制表符”+a.dom.recordID)
.Items(tabstrip=>
{
tabstrip.Add()
.文本(“状态”)
.Content(@@RenderStatusGrid(a));
tabstrip.Add()
.文本(“错误”)
.Content(@@RenderErrorGrid(a));
})
);
}
@helper RenderStatusGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.drs)
.姓名(“身份”)
.列(列=>
{
columns.Bound(c=>c.currentStatus);
columns.Bound(c=>c.updateTime);
})
.Scrollable()
)
}
@helper RenderErrorGrid(DominguezReport.WebInterface.Models.accModelTest a)
{
@(Html.Kendo().Grid(a.dre)
.Name(“错误”)
.列(列=>
{
columns.Bound(c=>c.errorType);
columns.Bound(c=>c.errorDetail);
columns.Bound(c=>c.updateTime);
})
.Scrollable()
)
}

我尝试了下面的代码,效果很好。请将网格代码包含在PanelBar内容部分的
标记中

@(Html.Kendo().PanelBar()
.Name("panelbar")
.ExpandMode(PanelBarExpandMode.Single)
.Items(panelbar => 
    { 
             panelbar.Add().Text("Devices")
            .Expanded(true)
            .Content(@<div>@(Html.Kendo().Grid(Model)
            ...grid code here
             </div>
            );
            })
            )
@(Html.Kendo().PanelBar()
.名称(“panelbar”)
.ExpandMode(PanelBarExpandMode.Single)
.项目(面板栏=>
{ 
panelbar.Add().Text(“设备”)
.扩展(真)
.Content(@@(Html.Kendo().Grid(模型)
…这里是网格代码
);
})
)

我尝试了下面的代码,效果很好。请将网格代码包含在PanelBar内容部分的
标记中

@(Html.Kendo().PanelBar()
.Name("panelbar")
.ExpandMode(PanelBarExpandMode.Single)
.Items(panelbar => 
    { 
             panelbar.Add().Text("Devices")
            .Expanded(true)
            .Content(@<div>@(Html.Kendo().Grid(Model)
            ...grid code here
             </div>
            );
            })
            )
@(Html.Kendo().PanelBar()
.名称(“panelbar”)
.ExpandMode(PanelBarExpandMode.Single)
.项目(面板栏=>
{ 
panelbar.Add().Text(“设备”)
.扩展(真)
.Content(@@(Html.Kendo().Grid(模型)
…这里是网格代码
);
})
)

你的“网格”动作需要在控制器上做它自己的动作吗?你是在别处使用它还是只在这个面板中使用?如果它只在这个面板中使用,你可以考虑把网格视图代码直接放进这个视图中。我现在的猜测是,当你在面板的内容中包含网格时,你需要调用。在网格上,您的视图没有这样做。网格在其他地方使用,在本例中部分视图也是如此。不过我找到了解决方案。我应该使用“.Content”(Html.Action(“grid”).ToHt