弹出窗口中的Kendo UI DatePicker

时间:2015-05-09 13:03:19

标签: kendo-ui kendo-template kendo-datepicker

我想在Kendo模板中创建一个Kendo DatePicker。这是我的剑道模板。

    <script id="popup-doc-details" type="text/x-kendo-template">
      <input id="DateTesting" style="width: 180px">
    </script>

如何初始化Kendo DatePicker。有关详细信息,此模板是弹出窗口的一部分,并在从Kendo DropDown中选择某些内容时显示,并且DatePicker编号将通过提供数据动态更改。 DropDown数据就像。

    [{name:"test1", tags:[{name:"datename",type:"date"},{name:"datename",type:"date"}]}, {name:"test2", tags:[{name:"datename",type:"date"}]}] 

示例:如果我从DropDown中选择test1,则Kendo模板将根据标记加载DatePicker。

我知道我可以在Kendo模板中使用循环来实现这个目的。但我的问题是如何动态初始化Kendo DatePicker。

2 个答案:

答案 0 :(得分:1)

您可以使用MVVM样式在模板中创建datepicker,如此

 <input name="selectedDate" type="date" 
        data-bind="value: selectedDate" 
        data-format="dd MMMM yyyy" 
        data-role="datepicker" />

答案 1 :(得分:0)

  

对于Angular2 / 4:

<强> HTML

<!-- Calendar Icon -->
<span #anchor (click)="onToggle()" class="k-icon k-i-calendar"></span>

<!-- Kendo Popup with calendar inside -->
<kendo-popup [anchor]="anchor" (anchorViewportLeave)="show = false" *ngIf="show">
    <kendo-calendar class="pointer" [(value)]="examDate" (valueChange)="calendarFunc($event)"></kendo-calendar>
</kendo-popup>

<强> JS / TS

public onToggle(): void {
    this.show = !this.show;        
}

我使用show变量来显示弹出窗口。

  

对于Jquery / Knockout:

Popup Info

Calendar Info

<强> HTML

<!-- Anchor Position with calendar Icon iside --> 
<div class="datepicker-anchor">
    <span class="k-icon k-i-calendar" data-bind="click: onToggle.bind($data)" ></span>
</div>
<!-- Popup with calendar inside -->
<div id="popup">
    <div id="calendar"></div>
</div>                                    

<强> JS / TS

private popup: any;

constructor() {

    function onChangeCalendar() {
        var date = this.value();
        self.onToggle();           
    }

    $("#calendar").kendoCalendar({
        change: onChangeCalendar            
    });

    this.popup = $("#popup").kendoPopup({
        anchor: $(".datepicker-anchor")
    }).data("kendoPopup");
    this.popup.close();
}

onToggle = (): void => {
    this.show = !this.show;

    if(this.show)
        this.popup.open();
    else
        this.popup.close();
};