2016-07-22 51 views
0

我现在需要的帮助应该相对简单。 当创建/加载日历时,我似乎无法获取JavaScript。使用javascript更改Kendo UI日历的背景颜色

这里是我的javascript,它放在与日历相同的.cshtml文件中。该脚本块位于日历html之下。

jQuery(document).ready(function() { 
    jQuery('#Trafikkalender').onLoad(function() { 
     var calendar = $(this); 
     var currentDate = kendo.toString(calendar.value(), "yyyy-MM-dd"); 
     var param = { date: currentDate } 
     var url = $('#calArrayPostUrl').data('url'); 
     $.post(url, param, function(data) { 
      var body = calendar.find('tbody'); 

      var rows = body.getElementsByTagName('tr'); 

      for (var i = 0; i < rows.length; i++) { 
       var cols = rows[i].getElementsByTagName('td'); 
       for (var j = 0; cols.length; j++) { 
        var col = cols[j]; 
        col.addClass(data[i][j]); 
       } 
      } 
     }); 

    }); 
}); 

和这里的日历

@(Html.Kendo().Calendar() 
       .Name("Trafikkalender") 
       .Culture("sv-SE") 
       .HtmlAttributes(new {style = "width: 100%;"}) 
       .Events(e => e.Change("DateClick").Navigate("Navigate")) 
       .Format("dd MM yyyy") 

       //.MonthTemplate("#<div class=" + TrafficData.GetTrafficDate("#= data.value #").CSSClass + ">#") 
      ) 

我的问题是,JavaScript是没有运行,它并不至少粘在断点。 如果问题出现在数据参数的来源及其外观上,它是一个在C#中声明为string [,]的二维数组,它作为Json字符串从控制器返回。

URL是获取从定义为这样的hiddenfield

<input type="hidden" id="calArrayPostUrl" data-url="@Url.Action("CalendarCellClasses")"/> 
+0

是否更容易在页面加载上进行操作?我怎么用jQuery/javascript做到这一点? – inifus

回答

0

您应该检查日历的ID或者因为你有,请将.Name(“Trafikkalender”)改变jQuery选择和你正在做的jQuery( '#Trafikkalender'),它搜索ID为#Trafikkalender的元素以更改背景颜色。在JavaScript代码运行后,您应该使用如下所示的CSS更改背景颜色:http://dojo.telerik.com/UDudA