3

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

@(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 未定义。加载部分视图时如何初始化此日期时间选择器?

4

3 回答 3

4

如果您将 ready 块放在页面底部,或者至少在小部件初始化代码下方(另请参阅文档的这一部分),您的原始方法应该可以工作。

如果你把它放在上面@(Html.Kendo()部分,TestDTP它将在小部件初始化之前运行,因为小部件初始化代码也被包装在一个 jQuery 就绪块中(并且各种就绪块是按顺序执行的)。

于 2014-03-29T01:55:57.310 回答
0

我最终做的是从纯 javascript 初始化 datetimepicker 并放弃了 razor 版本:

function TestDTP() {
    $("#dtpVisitStart").kendoDateTimePicker({
        format: "MM/dd/yyyy HH:mm tt",
        timeFormat: "HH:mm", 
        change: dtpVisitStart_Change, 
        value: "@(startTime)"
    });
    var dtp = $("#dtpVisitStart").getKendoDateTimePicker();
    debugger;
}
于 2014-03-28T21:00:47.250 回答
0

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

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

于 2014-03-28T20:50:04.163 回答