2013-12-20 44 views
0

Hej书呆子:)Kendo UI Scheduler加载完成后加载JQuery?

我有一个元素的页面 - 一个Dropdownlist和一个kendoUI调度。 类似:

<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是负载调度器加载完成之前 - 这意味着我的下拉列表初始化值dosnt匹配调度的观点的价值。 我可以通过更改下拉列表中的值来更改调度程序视图,以便绑定无误。 当我在页面加载调试时,我看到“value:scheduler.view()”是'null'。

所以我的问题是:我如何确保js在调度器之后加载,而不使用定时器并且没有在js中编写调度器?

风流Christimas :)

回答

0

Thx为答案。

我对我的问题的解决方案 - 是订阅kendo UI调度程序的databound事件。 。 看起来像这一点,并设置下拉列表为“scheduler.view的值()命名

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

感谢您的答案 - 圣诞快乐

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()); 
     } 
    }); 
}); 
+0

不可能得到它的工作 - 如果我建立它像这一事件从未被解雇。但是,你的文章确实让我走上了正确的道路 - 谢谢。 – Mir

0

我觉得RequireJS可能是你(http://requirejs.org/)是有用的。

它允许你以特定的顺序定义你的JS文件/插件等等。 我让你看看它,希望它有帮助。