[英]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.