使用javascript更改Kendo UI Calendar的背景颜色

时间:2016-07-22 12:57:15

标签: javascript jquery kendo-ui asp.net-mvc-5

我现在需要的帮助应该相对简单。

,当创建/加载日历时,我似乎无法启动javascript。

这是我的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是从定义为

的隐藏字段中获取的
<input type="hidden" id="calArrayPostUrl" data-url="@Url.Action("CalendarCellClasses")"/>

1 个答案:

答案 0 :(得分:0)

您应该检查日历的ID或更改jquery选择器,因为您有.Name(&#34; Trafikkalender&#34;)并且您正在执行jQuery(&#39;#Trafikkalender&#39;)搜索id为#Trafikkalender的元素,用于更改背景颜色。运行javascript代码后,您应该使用CSS更改背景颜色,例如:http://dojo.telerik.com/UDudA