c# - 使用 C# 将 Javascript 添加到 ASPX 页面

标签 c# javascript asp.net

我有一些 Javascript 代码,我想将其添加到我的页面 Default.aspx.cs 中。

我尝试了以下方法:

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);

该代码在直接添加到 aspx 页面时可以工作,但是当我尝试此操作并尝试任何其他代码时,我无法在我的页面上运行它。

我将从数据库中填充值。所以它必须是动态的

编辑:我解决了这个问题。我在页面上添加了一个标签并编写了这段代码

        Label5.Text = sb;

最佳答案

问题是代码有注释。它会使一些 javascript 代码在渲染到浏览器时无效,因此请删除这些注释并重试。

为了进行调试,您可以尝试先将脚本渲染到Literal控件,然后在控制台中查看任何脚本错误。

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);

关于c# - 使用 C# 将 Javascript 添加到 ASPX 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454262/

相关文章:

c# - 将代码从 .aspx 文件移动到 .cs 文件,没有任何区别

javascript - 如何有条件地加载 jQuery 插件?

c# - 为什么允许从函数内返回不安全的指针?

c# - 是否可以将参数验证添加到 dontnetcore api 应用程序中的路径变量?

c# - 如何查找 LTFS 卷序列号而不是磁带驱动器序列号

javascript - 如何否定javascript数组中的所有元素

c# - 整数数组或结构数组 - 哪个更好?

javascript - 缩小并扁平化一个物体的物体

javascript - Canvas 坐标基础上的 JQuery 工具提示

c# - 在依赖类型上找不到导航属性