2014-03-28 54 views
2

未定義我有在MVC一個劍道DateTimePicker控件(asp.net),我從的document.ready()嘗試訪問局部視圖:KendoUI的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是未定義的。如何在部分視圖加載時初始化此日期時間選擇器?

回答

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; 
} 
0

我通常用它來獲取實例:

VAR DTP = $( '#dtpVisitStart')的數據( 'kendoDateTimePicker')。

+0

我相信*我得到它的方式和你的方式基本相同。我的代碼在document.ready外部工作,但不在內部。 –

4

如果你把準備塊在頁面的底部,你原來的做法應該工作,或至少小部件初始化代碼(also see this section of the docs)下方。因爲小部件初始化代碼也被包裝在一個jQuery就緒區塊(並且各種就緒區塊按順序執行),所以如果將它放在@(Html.Kendo()區段的上方,TestDTP將在小部件初始化之前運行。