我现在需要的帮助应该是相对简单的。在创建/加载日历时,我似乎无法触发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#中,它将作为Json字符串从控制器返回。
url是从这样定义的隐藏字段中获取的。
<input type="hidden" id="calArrayPostUrl" data-url="@Url.Action("CalendarCellClasses")"/>发布于 2016-07-25 15:48:13
您应该检查日历的id或更改jquery选择器,因为您有.Name("Trafikkalender"),并且您正在执行jQuery(' #Trafikkalender '),它会搜索id为#Trafikkalender的元素以更改背景颜色。在javascript代码运行后,您应该使用CSS更改背景颜色,如下所示:http://dojo.telerik.com/UDudA
https://stackoverflow.com/questions/38527070
复制相似问题