【问题标题】:how to pass array data to the javascript code from asp.net page?如何将数组数据从 asp.net 页面传递给 javascript 代码?
【发布时间】:2014-07-07 08:07:35
【问题描述】:

我有一个带有 javascript 代码图表模板,这是其中的一部分:

// Toggling Series 
    var datasets = {
        "Iran": {
            label: "IR",
            data: [
                [1988, 483994],
                [1989, 479060],
                [1990, 457648],
                [1991, 401949],
                [1992, 424705],
                [1993, 402375],
                [1994, 377867],
                [1995, 357382],
                [1996, 337946],
                [1997, 336185],
                [1998, 328611],
                [1999, 329421],
                [2000, 342172],
                [2001, 344932],
                [2002, 387303],
                [2003, 440813],
                [2004, 480451],
                [2005, 504638],
                [2006, 528692]
            ]
        },
        "russia": {
            label: "Russia",
            data: [
                [1988, 218000],
                [1989, 203000],
                [1990, 171000],
                [1992, 42500],
                [1993, 37600],
                [1994, 36600],
                [1995, 21700],
                [1996, 19200],
                [1997, 21300],
                [1998, 13600],
                [1999, 14000],
                [2000, 19100],
                [2001, 21300],
                [2002, 23600],
                [2003, 25100],
                [2004, 26100],
                [2005, 31100],
                [2006, 34700]
            ]
        }
   };

现在我想将数组变量中的数据传递给 java 脚本,以便在 asp.net 页面加载事件中替换为该数据。 如何将数组列表传递给这个?可以写个示例代码吗?

注意:我的数据很大,这个java脚本数据只是样本,最好传递数组或变量!

【问题讨论】:

标签: c# javascript html asp.net arrays


【解决方案1】:

您不能直接将变量从 .NET 应用程序传递到客户端 JavaScript。相反,您需要在脚本源中包含完整列表数据(正如您在上面部分完成的那样)或使用 AJAX 或类似方法从服务器查询数据。

您可以使用 JSON.net 之类的工具来缩短代码以序列化您尝试嵌入的对象:

var datasets = <%= NewtonSoft.Json.JsonConvert.SerializeObject(ViewBag.datasets) %>;

或者你可以自己编写代码来生成布局……我个人更喜欢更简单的JsonConvert选项。

【讨论】:

    【解决方案2】:

    类似的东西,(我没有测试过)

    在你的 .cs 文件中创建一个方法:

    [WebMethod]
      public static string GetData()
      {
        var datasets = {
            "Iran": {
                label: "IR",
                data: [
                    [1988, 483994],
                    [1989, 479060],
                    [1990, 457648],
                    [1991, 401949],
                    [1992, 424705],
                    [1993, 402375],
                    [1994, 377867],
                    [1995, 357382],
                    [1996, 337946],
                    [1997, 336185],
                    [1998, 328611],
                    [1999, 329421],
                    [2000, 342172],
                    [2001, 344932],
                    [2002, 387303],
                    [2003, 440813],
                    [2004, 480451],
                    [2005, 504638],
                    [2006, 528692]
                ]
            },
            "russia": {
                label: "Russia",
                data: [
                    [1988, 218000],
                    [1989, 203000],
                    [1990, 171000],
                    [1992, 42500],
                    [1993, 37600],
                    [1994, 36600],
                    [1995, 21700],
                    [1996, 19200],
                    [1997, 21300],
                    [1998, 13600],
                    [1999, 14000],
                    [2000, 19100],
                    [2001, 21300],
                    [2002, 23600],
                    [2003, 25100],
                    [2004, 26100],
                    [2005, 31100],
                    [2006, 34700]
                ]
            }
       };
    
    return dataset;
      }
    

    然后在你的 jquery 加载/文档准备功能中:

    $.ajax({
      type: "POST",
      url: "PageName.aspx/GetData",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(data) {
        $("domelement").html(data);
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      相关资源
      最近更新 更多