Hej书呆子:)
我有一个带有元素的页面 - 一个Dropdownlist和一个kendoUI Scheduler。 类似的东西:
<div class="SchedulerHeader">
<p> <label>Current View: </label>
<select id"views">
<option value="agenda">Agenda</option>
<option value="day">Day</option>
<option value="month">Month</option>
<option value="week">Week</option>
<option value="workWeek">Work Week</option>
</select>
</p>
</div>
@(Html.Kendo().Scheduler<myNameSpace.viewModel>().Name("myScheduler") #more options#
<script>
$(function() {
var scheduler = $("#myScheduler").data("kendoScheduler");
$("#views").kendoDropDownList({
value: scheduler.view(),
change: function () {
scheduler.view(this.value());
}
});
});
</script>
我的问题是js在调度程序完成加载之前加载 - 这意味着我的dropdownlist init值dosnt与调度程序的视图值匹配。 我可以通过更改下拉列表中的值来更改调度程序视图,以便绑定正常。 当我在pageload调试时,我看到“value:scheduler.view()”是'null'。
所以我的问题是:我如何确保在调度程序之后加载js,而不使用定时器并且不在js中编写调度程序?
Merry Christimas :)
答案 0 :(得分:1)
使用回调:
参考:http://www.w3schools.com/jquery/jquery_callback.asp
var scheduler = $("#myScheduler").data("kendoScheduler", function() {
$("#views").kendoDropDownList({
value: scheduler.view(),
change: function () {
scheduler.view(this.value());
}
});
});
答案 1 :(得分:0)
我认为RequireJS可能对您有用(http://requirejs.org/)。
它允许您按特定顺序定义JS文件/插件等等。 我让你看看它,希望它有所帮助。
答案 2 :(得分:0)
谢谢答案。
我对我的问题的解决方案 - 订阅了kendo UI调度程序的数据绑定事件。 看起来像这样,并将dropDownList的值设置为'scheduler.view()。name
<div class="SchedulerHeader">
<p> <label>Current View: </label>
<select id"views">
<option value="agenda">Agenda</option>
<option value="day">Day</option>
<option value="month">Month</option>
<option value="week">Week</option>
<option value="workWeek">Work Week</option>
</select>
</p>
</div>
@(Html.Kendo().Scheduler<myNameSpace.viewModel>().Name("myScheduler") #more options#
.Events(events => events.Databound("onLoad"))
<script>
function onLoad(e){
var scheduler = $("#myScheduler").data("kendoScheduler");
$("#views").kendoDropDownList({
value: scheduler.view()**.name**,
change: function () {
scheduler.view(this.value());
}
});
})
</script>
感谢您的回答 - 圣诞快乐