在document.ready上未定义KendoUI DateTimePicker

时间:2014-03-28 20:22:51

标签: kendo-ui kendo-asp.net-mvc kendo-datetimepicker

我在mvc(asp.net)局部视图中有一个Kendo DateTimePicker控件,我试图从document.ready()访问:

@(Html.Kendo().DateTimePickerFor(vvm => vvm.StartTime)
                    .Name("dtpVisitStart")
                    .Format("yyyy/MM/dd HH:mm tt")
                    .TimeFormat("HH:mm:tt")
                    .Events(e => e.Change("dtpVisitStart_Change")
                                )                               
)

javascript:

$(document).ready(function () { 
    TestDTP();
});

function TestDTP() {
    var dtp = $("#dtpVisitStart").getKendoDateTimePicker();
    debugger;
}

当调试器行运行时,dtp未定义。如何在部分视图加载时初始化此日期时间选择器?

3 个答案:

答案 0 :(得分:4)

如果您将就绪块放在页面底部,或至少低于窗口小部件初始化代码(also see this section of the docs),则原始方法应该有效。

如果将它放在@(Html.Kendo()部分之上,TestDTP将在窗口小部件初始化之前运行,因为窗口小部件初始化代码也包装在jQuery就绪块中(并且执行了各种就绪块)顺序地)。

答案 1 :(得分:0)

我通常使用它来获取实例:

var dtp = $('#dtpVisitStart')。data('kendoDateTimePicker');

答案 2 :(得分:0)

我最终做的是从纯javascript初始化datetimepicker并抛弃剃刀版本:

function TestDTP() {
    $("#dtpVisitStart").kendoDateTimePicker({
        format: "MM/dd/yyyy HH:mm tt",
        timeFormat: "HH:mm", 
        change: dtpVisitStart_Change, 
        value: "@(startTime)"
    });
    var dtp = $("#dtpVisitStart").getKendoDateTimePicker();
    debugger;
}