繁体   English   中英

jQuery使用ASP.NET MVC和DateTime属性进行flot

[英]jQuery flot with ASP.NET MVC and DateTime properties

我有一个带有整数属性的对象和一个DateTime属性,我想用jQuery flot绘制这些对象的集合,但是我已经尝试使用谷歌搜索示例但没有看,所以我想知道是否有人可以指出我正确的方向将对象集合转换为jQuery flot将理解的数组,我也理解你需要将DateTime转换为Javascript Date。 任何有助于朝着正确方向前进的帮助将不胜感激。

我创建了我的扩展方法,将我的数据时间转换为javascript日期时间。 看起来像:

private static long ToJavascriptTimestamp( this DateTime input )
{
  TimeSpan span = new TimeSpan( new DateTime( 1970, 1, 1, 0, 0, 0 ).Ticks );
  DateTime time = input.Subtract( span );
  return ( long )( time.Ticks / 10000 );
}

然后我把它作为Json结果传回来了。

如果你想把它作为柱形图,那么条形宽度也是基于刻度线,所以如果你想要它是一个小时,宽度将是:60 * 60 * 1000(刻度*秒*分钟)

你的对象可能是这样的:

public class GraphData
{
  public int Value {get; set;}
  public long Date {get; set;}
}

然后只需创建一个GraphData列表,并在控制器中使用如下内容:

return Json(myGraphDataList, "application/json", Encoding.Default);

然后在你的javascript中你可能会有一些$.Ajax调用来获取数据和成功响应你在哪里设置它:

$.ajax({
  url: "/someUrl",
  type: 'POST',
  dataType: 'json',
  success: function (result) {

    var graphData = [{
        data: result.Data,
        lines: {
            show: true
        },
        points: {
            radius: 3
        }
    }];

    var graphOptions = {
        grid: {
            hoverable: true,
            borderWidth: 1
        },
        yaxis: {
            axisLabel: "Title",
            axisLabelUseCanvas: true,
            axisLabelFontSizePixels: 12,
            min: 0
        },
        xaxis: {
            axisLabel: "Time",
            axisLabelUseCanvas: true,
            axisLabelFontSizePixels: 12,
            mode: "time",
            timeformat: "%H:%M",
            tickSize: 1000 * 60 * 60
        }
    };

     $.plot($("#tag"), data, options);
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM