簡體   English   中英

如何將數組數據從asp.net頁傳遞到javascript代碼?

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

我有一個帶有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);
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM