2016-07-22 70 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