Вложенная панель кендо на вкладке Kendo Tabstrip не отображается

У меня есть вкладка кендо, которая загружает 3 вкладки. первая вкладка загружает панель кендо, код такой

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

когда код такой, он работает нормально... он отображается правильно, но когда я пытаюсь создать текстовое поле с маской кендо на панели, например:

@(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"

и полоса вкладок, и панель являются частичными представлениями

любая помощь?? возможно, это ошибка или конфликт пользовательского интерфейса Kendo.???


person Edu Cielo    schedule 17.06.2014    source источник


Ответы (1)


У вас не может быть вложенных шаблонов внутри вызова вспомогательного метода mvc. Код, в котором у вас есть MaskedtextBox, вызывает проблему. Что я сделал в прошлом, так это создал html-помощник, который возвращает элемент управления кендо, а затем добавил оставшуюся часть моей разметки кендо, которая включает вложенные элементы, на главную страницу, например так:

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

Ваш метод справки должен возвращать тип KendoPanelBar. Если вам нужны дополнительные разъяснения, дайте мне знать. Удачи.

person kryptonkal    schedule 17.06.2014
comment
спасибо, приятель .. я попробую ваше предложение .. я просто помещу его в свой элемент на вкладке. - person Edu Cielo; 18.06.2014
comment
как мне создать помощника, можете ли вы привести пример. я новичок в mvc - person Edu Cielo; 18.06.2014