在 MVC 应用程序中的 Kendo UI 折线图中绘制趋势线时,指定的日期无法正确显示

问题描述 投票:0回答:1

在 MVC 应用程序中的 Kendo UI 折线图中绘制趋势线时,指定的日期显示不正确;相反,它只显示该月的第一个日期。

函数返回值(日期中的毫秒)

   function toDate(value) {         
       var dateRegExp = /^\/Date\((.*?)\)\/$/;
       var date = dateRegExp.exec(value);
       return new Date(parseInt(date[1]));     
      }

testSurveyCalculationsDataSource 使用 todate 函数通过 Api 绑定数据

 var testSurveyCalculationsDataSource = new kendo.data.DataSource({
    transport: {
        read: {
            url: function () {
                return '@Url.Action("GetCalculations", "Dashboard")';
            },
            dataType: "json",
            cache: false,
            sort: { field: "year", dir: "asc" },
            type: "POST"
        },
        parameterMap: dataSourceParameterMap
    },
    requestStart: function () {
        calculationsLoading = true;
        requestStart();
    },
    requestEnd: function () {
        calculationsLoading  = false;
        onRequestEnd();
    },
    group: {
        field: "Name"
    },
    schema: {
        parse: function (response) {
            $.each(response, function (i, v) {
                v.TimeStamp = toDate(v.TimeStamp);
            });
            return response;
        }
    },
    error: function(e) {
        onError("#tempChart ");
      
    }
});

var tempChart = $("#tempChart ").kendoChart({
     title: {
         text: "Temp",
         visible: false
     },
     legend: {
         position: "top"
     },
     dataBound: function (e) {
         setColors("#tempChart");
         onNoData(e, "#tempChart");
     },
     dataSource: testSurveyCalculationsDataSource ,
     sort: { field: "TimeStamp", dir: "desc" },
     autoBind: false,
     series: [
         {
             type: "line",
             categoryField: "TimeStamp",
             field: "Temp",
             name: "#= group.value #",
             axis: "temp",
             tooltip: {
                 visible: true,
                 template: "${ kendo.toString(value, 'n0')}" + "</br>" + " ${ kendo.toString(category, 'MM/dd/yyyy')}"
             }
         }
     ],
     categoryAxis: [{    
         baseUnit: "months",
         baseUnitStep: 1,        
         type:"date",
         labels: {
             step: 3,
             template: '#= kendo.toString(value, "MMM yy" ) #',
             dateFormats: {
                months: "MMM yy"
             },    
             visible: true
         }
     }],
     valueAxis: [
         {
             name: "temp",
             autoScale: true,
             min: 0,
             plotBands: [
                 {
                     color: "#ff0",
                     opacity: 0.2
                 },
                 {
                     color: "#ff0000",
                     opacity: 0.2
                 }
             ]

         }
     ],
     tooltip: { visible: true }
 }).data('tempChart ');

需要显示传入值/Date(1712730600000)/的日期/需要返回2024年4月10日。 但它返回 2024 年 4 月 1 日。

date charts kendo-ui trend
1个回答
0
投票

您的意思是在标签中还是在工具提示模板中?无论如何,当

baseUnit
设置为
months
时,显示的日期将始终是该月的第一个日期。与用作基本单位的
years
weeks
相同 - 一年或一周的第一个日期。您可以在此处检查标签和工具提示中的日期将如何根据所选基本单位而变化。

© www.soinside.com 2019 - 2024. All rights reserved.