Kendo Tabstrip上的嵌套剑道面板无法渲染

时间:2014-06-17 08:21:32

标签: kendo-ui kendo-asp.net-mvc kendo-tabstrip kendo-panelbar

我有一个加载3个标签的kendo标签。第一个选项卡加载一个kendo面板栏,代码就像这样

 @(Html.Kendo().TabStrip()
          .Name("tabstrip")
          .Items(tabstrip =>
          {
              tabstrip.Add().Text("Transactions")
              .LoadContentFrom("getgridpanel", "Grid").Selected(true);
              tabstrip.Add().Text("Payments").Encoded(false)
                  .Content(@<text><div class="dr_detail row">
                      <br>
                      <br>
                  </div></text>);
              tabstrip.Add().Text("Browse").Encoded(false).HtmlAttributes(new { style = "float:right !important" })
                  .Content(@<text><div class="dr_detail row">
                      <br>
                      <br>
                      <br>
                      <br>
                  </div></text>);

          })
    )

并且第一个标签内的面板是这样的:

@(Html.Kendo().PanelBar()
.Name("panelbar")
.ExpandMode(PanelBarExpandMode.Multiple)
.HtmlAttributes(new { style = "width:100%" })
.Items(panelbar =>
      {
          panelbar.Add().Text("Invoice Details")
              .Content(@<text><div class="col-md-2 dr">
                   <dl>
                     <dt class="text-left ">Invoice #:</dt>
                     <dd class="text-left ">
                     <input class="form-control input-sm" type="text" placeholder="Small Input">
                     </dd>
                    </dl>
                 </div></text>);
          panelbar.Add().Text("Payment & Discount");
          panelbar.Add().Text("Item Details")
          .LoadContentFrom("GetGrid", "Grid", new { grid =    Awesome.Web.WebConstants.L_GRID_AGENT });
      })
)

当代码类似于它工作正常...它呈现正确,但当我尝试在面板栏中创建一个kendo蒙版文本框时,如下所示:

@(Html.Kendo().PanelBar()
.Name("panelbar")
.ExpandMode(PanelBarExpandMode.Multiple)
.HtmlAttributes(new { style = "width:100%" })
.Items(panelbar =>
      {
          panelbar.Add().Text("Invoice Details")
              .Content(@<text><div class="col-md-2 dr">
                   <dl>
                     <dt class="text-left ">Invoice #:</dt>
                     <dd class="text-left ">
                     @(Html.Kendo().MaskedTextBox()
                     .Name("Invoice")
                     .Mask("0000000")
                       )
                     </dd>
                    </dl>
                 </div></text>);
          panelbar.Add().Text("Payment & Discount");
          panelbar.Add().Text("Item Details")
          .LoadContentFrom("GetGrid", "Grid", new { grid =    Awesome.Web.WebConstants.L_GRID_AGENT });
      })
)

此代码给出了一个javascript错误:“TypeError:undefined不是/ Grid / getgridpanel中的函数”

tabtrip和面板都是部分视图

任何帮助?这可能是剑道UI的错误或冲突。???

1 个答案:

答案 0 :(得分:1)

你的mvc helper方法调用中不能有嵌套模板。您拥有MaskedtextBox的代码导致了问题。我过去做的是创建一个html帮助器,它返回一个kendo控件,然后在主页面中添加包含嵌套项的我的kendo标记的剩余部分,如下所示:

<div>
    @MyHelper(parameters).Items(...your code for panel bar here)
</div>

您的帮助方法应返回KendoPanelBar类型。如果您需要进一步澄清,请告诉我。祝你好运。