如何将数组数据从asp.net页面传递到javascript代码

how to pass array data to the javascript code from asp.net page?

本文关键字:代码 javascript net 数组 数据 asp      更新时间:2023-09-26

我有一个图表模板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脚本数据只是样本,最好传递数组或变量!

你不能直接将。net应用程序中的变量传递给客户端JavaScript。相反,您需要在脚本源中包含完整的列表数据(如上所述的部分内容),或者使用AJAX或类似的方法从服务器查询数据。

你可以使用JSON.net之类的东西来序列化你想嵌入的对象来缩短代码:

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

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

类似于(我还没有测试过)

在.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);
  }
});