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")
                                )                               
)

ジャバスクリプト:

$(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

私は通常、これを使用してインスタンスを取得します。

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

于 2014-03-28T20:50:04.163 に答える