如何将数据从.cs传递到.js?

时间:2019-06-24 03:29:11

标签: javascript c# asp.net

通常,当我在代码中包含饼形图时,我只是简单地将代码放在页面底部即可生成图表。由于我需要创建越来越多的图表..以避免在我的dashboard.aspx中使用大量脚本。我创建了一个新的.js文件,名为dashboard.js,并将该js包含在Dashboard.aspx中,如下所示:

Dashboard.aspx

<asp:HiddenField runat="server" ID="PieSource"></asp:HiddenField>  
<tr>
    <td colspan="6" align="center" style="font-size:10px;white-space:nowrap; width:50%; border:0px;">
        <div id="pie_chart" style="position:center; width:100%; height:200px; font-size:10px;"></div>  
    </td>
</tr>
...
...

<script src="/assets/js/dashboard.js" type="text/javascript"></script> 

数据来自Dashboard.aspx.cs,如下所示:

// Some query here
while(db.readDataSource)
{
    if (pieData.Equals(string.Empty))
    {
        pieData = "{ label: \"" + db.readValue("Name").ToString() + "\", value: " + db.readValue("Total").ToString() + " }";
    else
    {
        pieData += ", { label: \"" + db.readValue("Name").ToString() + "\", value: " + db.readValue("Total").ToString() + " }";
    }
}
db.closeDataReader();

 PieSource.Value = pieData.ToString();

这是我的dashboard.js

var Source = function () {
    if ($('#pie_chart').length == 0) {
        return;
    }

    Morris.Donut({
        element: 'pie_chart',
        data: [<%= PieSource.Value %>], 
        colors: [
            '#745BEF',
            '#7B57E7',
            '#9E45C1',
            '#D32989',
            '#E9305D',
            '#ED4A3E',
            '#EF5C29',
            '#EF7326'
        ],
    });
}

所以现在..我如何在dashboard.js中传递PieSource.Value?没有错误,但我的图表未显示。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

经过反复试验..感谢@Mate ..我现在设法显示图表。 我需要做的就是将变量发送到Dashboard.aspx中的js(在dashboard.js之前)

var pieData = [<%=PieSource.Value %>];

然后在dashboard.js ..中将pieData回调为数据,如下所示:

var Source = function () {
if ($('#pie_chart').length == 0) {
    return;
}

Morris.Donut({
    element: 'pie_chart',
    data: pieData, 
    colors: [
        '#745BEF',
        '#7B57E7',
        '#9E45C1',
        '#D32989',
        '#E9305D',
        '#ED4A3E',
        '#EF5C29',
        '#EF7326'
    ],
});

}

就这些。.谢谢您的帮助。