Ajax的数据以正确的格式FL​​OT图表?(Ajax data to FLOT chart in

2019-07-18 07:31发布

我知道有这个几个职位,但我觉得我失去了一些东西。 我返回下面的数据在Ajax调用,但它似乎并没有在为FLOT正确的格式。 有没有更好的格式,以在返回数据或应该怎样改变FLOT承认它? TIA

<script type="text/javascript">
     $(document).ready(function() {
         // Add the page method call as an onclick handler for the div.
         $("#Result").click(function() {
             $.ajax({
                 type: "POST",
                 url: "WebTest.aspx/GetData",
                 data: "{}",
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 success: function(msg) {
                     // Replace the div's content with the page method's return.

                     var jsObj = []
                     jsObj.push($.parseJSON(msg.d));

                     $.plot($("#Result"), jsObj, {
                         grid: {
                             backgroundColor: "#E5E5E5",

                             mouseActiveRadius: 20
                         }


                     }
                 );
                 }
             });
         });
     });
</script>


[WebMethod]
public static string GetData()
{

    DataLines dataLine1 = new DataLines();
    DataLines dataLine2 = new DataLines();


    int[] lineA_Point1 = new int[] { 4, 6 };
    int[] lineA_Point2 = new int[] { 2, 10};

    List<int[]> dataA = new List<int[]>();
    dataA.Add(lineA_Point1);
    dataA.Add(lineA_Point2);

    dataLine1.data = dataA;
    dataLine1.label = "DataLine1";

    JavaScriptSerializer js = new JavaScriptSerializer();

    string Line1 = js.Serialize(dataLine1);

    return Line1;
}

Answer 1:

1)转换JSON字符串返回到你的JavaScript中的JavaScript对象:

var jsObj = $.parseJSON(d); // using jquery method

2)在你的GetData方法,你的

dataLine1.data = "[[1356328800000,5],[1356933600000,3]]";

是行不通的。 这将使你的数据元素的JSON,而不是一个javascript数组的字符串。 这将是最好在你的WebMethod解决这个问题:

DataLines dataLine1 = new DataLines();
dataLine1.data = new List<int[]>();
dataLine1.data.Add(new int[] {1356328800000,5});
dataLine1.data.Add(new int[] {1356933600000,3});

这是没有经过测试的(我从来没有使用JavaScriptSerializer前,但类似的代码可与ServiceStack串行器。



文章来源: Ajax data to FLOT chart in correct format?
标签: c# ajax flot