0

I have some Javascript code and I want to add it to my page in Default.aspx.cs.

I tried the following:

string sb = @" <script type='text/javascript'>
        var chart;

        var chartData = [{'year': 2005,'income': 23.5,'expenses': 18.1},
            {'year': 2006,'income': 26.2,'expenses': 22.8},
            {'year': 2007, 'income': 30.1, 'expenses': 23.9 },
            {'year': 2008,'income': 29.5,'expenses': 25.1},
            {'year': 2009,'income': 24.6,'expenses': 25}
            ];  
            AmCharts.ready(function () {
            chart = new AmCharts.AmSerialChart();
            chart.dataProvider = chartData;
            chart.categoryField = 'year';
            chart.startDuration = 1;
            chart.plotAreaBorderColor = '#DADADA';
            chart.plotAreaBorderAlpha = 1;chart.rotate = true;var categoryAxis = chart.categoryAxis;
            categoryAxis.gridPosition = 'start';
            categoryAxis.gridAlpha = 0.1;
            categoryAxis.axisAlpha = 0;var valueAxis = new AmCharts.ValueAxis();
            valueAxis.axisAlpha = 0;
            valueAxis.gridAlpha = 0.1;
            valueAxis.position = 'top';
            chart.addValueAxis(valueAxis);
            var graph1 = new AmCharts.AmGraph();
            graph1.type = 'column';
            graph1.title = 'Income';
            graph1.valueField = 'income';
            graph1.balloonText = 'Income:[[value]]';
            graph1.lineAlpha = 0;
            graph1.fillColors = '#ADD981';
            graph1.fillAlphas = 1;
            chart.addGraph(graph1);
            var graph2 = new AmCharts.AmGraph();
            graph2.type = 'column';
            graph2.title = 'Expenses';
            graph2.valueField = 'expenses';
            graph2.balloonText = 'Expenses:[[value]]';
            graph2.lineAlpha = 0;
            graph2.fillColors = '#81acd9';
            graph2.fillAlphas = 1;
            chart.addGraph(graph2);var legend = new AmCharts.AmLegend();
            chart.addLegend(legend); chart.creditsPosition = 'top-right';
            chart.write('chartdiv');
        });
    </script>";


        ScriptManager.RegisterStartupScript(this.Page,
          this.GetType(), "MyFun1", sb, false);

The code works when directly added to the aspx page, but when I try this and try any other code I can't run it on my page.

I will fill values from database . So it must be dynamically

edit: I solved the problem. I added a label on page and wrote this code

        Label5.Text = sb;
9
  • 1
    Have you tried removing the <br> tag next to <script type='text/javascript'>? Commented Jun 27, 2014 at 14:28
  • " tried any other codes but i can't run it on my page" - what does this mean? Commented Jun 27, 2014 at 14:29
  • i added <br> code for trying sth. I delete it but nothing changes. "tried any other codes " my English is not good . Sorry about it i mean i find and try some codes but they didn't work. Commented Jun 27, 2014 at 14:31
  • Because this is a jquery chart and i want to get values dynamically . year , income and expenses values will fill from database Commented Jun 27, 2014 at 14:36
  • Why you can't keep js in separete file and just add reference to it in your aspx file? Commented Jun 27, 2014 at 14:37

1 Answer 1

1

The problem is the code has comments. It makes some of the javascript code invalid when render to browser, so remove those comments and try again.

For debugging, you can try render the script to Literal control first, and see any script error in Console.

string sb = @" <script type='text/javascript'>
    var chart;
    var chartData = [{ 'year': 2005, 'income': 23.5,'expenses': 18.1},
    AmCharts.ready(function () {
        chart = new AmCharts.AmSerialChart(); 
        chart.dataProvider = chartData;                
        chart.categoryField = 'year'; 
        chart.startDuration = 1; 
        chart.plotAreaBorderColor = '#DADADA'; 
        chart.plotAreaBorderAlpha = 1; 
        chart.rotate = true;
        var categoryAxis = chart.categoryAxis;                
        categoryAxis.gridPosition = 'start';                
        categoryAxis.gridAlpha = 0.1;                
        categoryAxis.axisAlpha = 0;
        var valueAxis = new AmCharts.ValueAxis();
        valueAxis.axisAlpha = 0;
        valueAxis.gridAlpha = 0.1;
        valueAxis.position = 'top';
        chart.addValueAxis(valueAxis);
        var graph1 = new AmCharts.AmGraph();                
        graph1.type = 'column';                
        graph1.title = 'Income';                
        graph1.valueField = 'income';                
        graph1.balloonText = 'Income:[[value]]';                
        graph1.lineAlpha = 0;                
        graph1.fillColors = '#ADD981';graph1.fillAlphas = 1;               
        chart.addGraph(graph1);
        var graph2 = new AmCharts.AmGraph();               
        graph2.type = 'column';                
        graph2.title = 'Expenses';                
        graph2.valueField = 'expenses';                
        graph2.balloonText = 'Expenses:[[value]]';                
        graph2.lineAlpha = 0;                
        graph2.fillColors = '#81acd9';               
        graph2.fillAlphas = 1;      
        chart.addGraph(graph2);
        var legend = new AmCharts.AmLegend();                
        chart.addLegend(legend);                
        chart.creditsPosition = 'top-right'; 
        chart.write('chartdiv');            
    });  
    </script>";


ScriptManager.RegisterStartupScript(this.Page, 
  this.GetType(), "MyFun1", sb, false);
Sign up to request clarification or add additional context in comments.

3 Comments

The [ in the line var chartData = [{ seems to miss the ]. Does the browser's javascript console show any errors?
Did you try rending the above script to Literal control? Did you see any script error in Console?
thank you so much @Win i wrote your code into a label and it works :))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.