簡體   English   中英

如何將C#變量值傳遞給javascript以使用amcharts?

[英]How can I pass a C# variable value to javascript to work with amcharts?

我試圖將一個帶有json字符串的變量從C#傳遞給javascript,我試圖使用該信息繪制一個amchart柱形圖。 但是,當我嘗試從javascript訪問存儲json字符串的變量時,我收到以下錯誤:

編譯器錯誤消息:BC30451:未聲明'sjson'。 由於其保護級別,它可能無法訪問。

在線,

var chartData = '<%=sjson%>';

這是我的所有代碼:

C#

    public partial class Default3 : System.Web.UI.Page
    {
        public string sjson;
        protected void Page_Load(object sender, EventArgs e)
        {
            ArrayList conRc = new ArrayList();


            for (int i = 0; i < 10; i++)
            {

                conRc.Add(new Confidence(i.ToString(), (i + 10).ToString()));

            }

            foreach (object obj in conRc)
            {
                Confidence cnLv = (Confidence)obj;
                Response.Write(cnLv.Ip + " - " + cnLv.Count.ToString());
                Response.Write("</br>");
            }

            System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            sjson = oSerializer.Serialize(conRc);

        }
    }

HTML

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>

        <head>

            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>amCharts examples</title>
            <link rel="stylesheet" href="http://localhost/amcharts/images/style.css" type="text/css">
            <script src="http://localhost/amcharts/amcharts.js" type="text/javascript"></script>         
            <script type="text/javascript">

                var chart;

                var chartData = '<%=sjson%>'; //[{ "Ip": "0", "Count": "10" }, { "Ip": "1", "Count": "11" }, { "Ip": "2", "Count": "12" }, { "Ip": "3", "Count": "13" }, { "Ip": "4", "Count": "14" }, { "Ip": "5", "Count": "15" }, { "Ip": "6", "Count": "16" }, { "Ip": "7", "Count": "17" }, { "Ip": "8", "Count": "18" }, { "Ip": "9", "Count": "19"}];



                AmCharts.ready(function () {
                    // SERIAL CHART
                    chart = new AmCharts.AmSerialChart();
                    chart.dataProvider = chartData;
                    chart.categoryField = "Ip";
                    chart.startDuration = 1;

                    // AXES
                    // category
                    var categoryAxis = chart.categoryAxis;
                    categoryAxis.labelRotation = 90;
                    categoryAxis.gridPosition = "Count";

                    // value
                    // in case you don't want to change default settings of value axis,
                    // you don't need to create it, as one value axis is created automatically.

                    // GRAPH
                    var graph = new AmCharts.AmGraph();
                    graph.valueField = "Count";
                    graph.balloonText = "[[category]]: [[value]]";
                    graph.type = "column";
                    graph.lineAlpha = 0;
                    graph.fillAlphas = 0.8;
                    chart.addGraph(graph);

                    chart.write("chartdiv");
                });
            </script>

        </head>

        <body>
            <div id="chartdiv" style="width: 100%; height: 400px;"></div>
        </body>

    </html>

你似乎錯過了一些非常基本的東西。

aspx的第一行應該如下所示:

<%@ Page Language="C#" Inherits="Default3 " Codebehind="Default3.aspx.cs" %>

如果您沒有該行,則您的aspx頁面將不會使用相同的類,並且您無法訪問其公共屬性。

暫無
暫無

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

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