【问题标题】:Kendo TabStrip and Kendo Templates剑道 TabStrip 和剑道模板
【发布时间】:2017-03-07 15:25:09
【问题描述】:

我必须在 Tabstrip 的每个选项卡单击时动态加载不同的 KENDO 模板。所有选项卡的数据源都是相同的。我正在尝试按以下方式进行操作,但它不起作用。请告知。(剑道 TabStrip 和剑道模板)

<div class="tabs-details-wrapper" id="Tab1">
    <ul>
        <li class="k-state-active" >Identification</li>
        <li>Planning</li>
        <li>Implementation</li>
        <li>Review</li>
        <li>Management Response</li>
    </ul>

    <div>
        <div class="row">
            <div class="col-xs-12 col-md-5">
                <div class="">
                    <div class="form-horizontal" ></div>
                </div>
            </div>
        </div>
    </div>

</div>

<script id="details-templateTab1" type="text/x-kendo-template">
    <div class="form-group">
        <label class="col-xs-12 col-md-4 control-label">Year of Completion</label>
        <div class="col-xs-12 col-md-8">
            <span class="control-readonly"></span>
        </div>
    </div>
    <div class="form-group">
        <label class="col-xs-12 col-md-4 control-label">Title</label>
            <div class="col-xs-12 col-md-8">
                <span class="control-readonly"></span>
            </div>
        </div>
    </script>
    <script id="details-templateTab2" type="text/x-kendo-template">

         <div class="form-group">
                <label class="col-xs-12 col-md-4 control-label">Hello1</label>
                <div class="col-xs-12 col-md-8">
                    <span class="control-readonly">
                    </span>
                </div>
            </div>
            <div class="form-group">
                <label class="col-xs-12 col-md-4 control-label">Title1</label>
                <div class="col-xs-12 col-md-8">
                    <span class="control-readonly">
                    </span>
                </div>
        </div>
    </script>


$(".tabs-details-wrapper").kendoTabStrip({
    select: function (e) {
        //var data = this.dataSource.at($(e.item).index());
        var templateSelector = ""
        // alert(e);
        if (e.item.innerText == "Identification") templateSelector = kendo.template($("#details-templateTab1").html())
        else templateSelector = kendo.template($("#details-templateTab2").html()) ;
        // alert(e.contentElement);

        //templateSelector = kendo.template($("#details-templateTab1").html());
        $(e.contentElement).html(templateSelector);
        // kendo.bind(e.contentElement, data);
        // $(e.contentElement).html(template(this.dataSource.at($(e.item.innerText).index())))
    },
                   // template: $("#details-templateTab1"),
                    animation: false
                    //dataSource: ds
                   // dataSource: ds,
});

【问题讨论】:

    标签: kendo-tabstrip


    【解决方案1】:

    我已发起jsBin 来帮助解决您的问题。当我单击每个选项卡时,它会加载您所描述的内容。您有要添加到代码中的数据源 javascript 对象吗?

    需要更多信息,请。

    $(".tabs-details-wrapper").kendoTabStrip({
        select: function (e) {
            //var data = this.dataSource.at($(e.item).index());
            var templateSelector = ""
            // alert(e);
            if (e.item.innerText == "Identification") templateSelector = kendo.template($("#details-templateTab1").html())
            else templateSelector = kendo.template($("#details-templateTab2").html()) ;
            // alert(e.contentElement);
    
            //templateSelector = kendo.template($("#details-templateTab1").html());
            $(e.contentElement).html(templateSelector);
            // kendo.bind(e.contentElement, data);
            // $(e.contentElement).html(template(this.dataSource.at($(e.item.innerText).index())))
        },
                       // template: $("#details-templateTab1"),
                        animation: false
                        //dataSource: ds // what is your DS?
                       // dataSource: ds,
    });
    

    【讨论】:

      【解决方案2】:

      我认为问题在于您的数据源中没有定义“dataContentField”。将它与数据源一起添加后,我开始看到来自 select 函数的动态结果。

      这是我的 JavaScript

      $(".tabs-details-wrapper").kendoTabStrip({
          select: function (e) {
                  var templateSelector = ""
                  if (e.item.innerText == "Identification") templateSelector = kendo.template($("#details-templateTab1").html())
                  else templateSelector = kendo.template($("#details-templateTab2").html());
                  $(e.contentElement).html(templateSelector(this.dataSource.at($(e.item).index())))
          },
          animation: false,
          dataTextField: "Name",
          dataContentField: "Content",
          dataSource: [
            { Name: "Identification", YearOfCompletion: "1998", Title: "This is first title", Content: "", customMessage: "This is custom message 1" },
            { Name: "Planning", YearOfCompletion: "1999", Title: "This is second title", Content: "", customMessage: "This is custom message 2" },
            { Name: "Implementation", YearOfCompletion: "2000", Title: "This is third title", Content: "", customMessage: "This is custom message 3" },
            { Name: "Review", YearOfCompletion: "2001", Title: "This is fourth title", Content: "", customMessage: "This is custom message 4" },
            { Name: "Management Response", YearOfCompletion: "2002", Title: "This is fifth title", Content: "", customMessage: "This is custom message 5" }
          ]
      
      });
      

      我在 dataSource 的 content 属性中放什么并不重要,因为它会在选择时被替换。

      这是我的html

      <div class="tabs-details-wrapper" id="Tab1"></div>
      <script id="details-templateTab1" type="text/x-kendo-template">
      <div class="form-group">
          <label class="col-xs-12 col-md-4 control-label">Year of Completion</label>
          <div class="col-xs-12 col-md-8">
              <span class="control-readonly">#=YearOfCompletion#</span>
          </div>
      </div>
      <div class="form-group">
          <label class="col-xs-12 col-md-4 control-label">Title</label>
          <div class="col-xs-12 col-md-8">
              <span class="control-readonly">#=Title#</span>
          </div>
      </div>
      </script>
      <script id="details-templateTab2" type="text/x-kendo-template">
      <div class="form-group">
          <label class="col-xs-12 col-md-4 control-label">Hello1</label>
          <div class="col-xs-12 col-md-8">
              <span class="control-readonly">#=customMessage#</span>
          </div>
      </div>
      <div class="form-group">
          <label class="col-xs-12 col-md-4 control-label">Title1</label>
          <div class="col-xs-12 col-md-8">
              <span class="control-readonly">#=Title#</span>
          </div>
      </div>
      </script>
      

      这是你要找的吗?

      【讨论】:

        猜你喜欢
        • 2019-12-30
        • 1970-01-01
        • 2013-01-28
        • 1970-01-01
        • 2014-08-07
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 2015-02-26
        相关资源
        最近更新 更多