【发布时间】:2018-01-30 11:51:45
【问题描述】:
我正在尝试在后面的代码中编写我的 js 代码。我已经定义了一个名为“contentPie”的文字,然后将 javascript 代码放在它的文本中。但它不起作用。
contentPie.Text = "<script>window.onload = function() {var chart = new CanvasJS.Chart(" + chartContainer + ", { animationEnabled: true,data: [{type: \"pie\",startAngle: 240,indexLabel: \"{label} {y}\",dataPoints: [{ y: 79.45, label: \"Javascript\" },{ y: 7.31, label: \"CSS\" },{ y: 7.06, label: \"Image\" },{ y: 4.91, label: \"HTML\" },{ y: 1.26, label: \"Others\" }]}]});chart.render();}</ script >";
P.s,这个 javascript 代码是一个饼图模板。这是来源:https://canvasjs.com/html5-javascript-pie-chart/。
顺便说一句,我不确定,但 > 这些标签可能是错误的。如果我犯了错误,请告诉我。
【问题讨论】:
-
如果需要将数据从服务器传递到脚本,可以使用
<script type="application/json">...</script>。您可以在其中放置一个文字并将您的数据序列化为 JSON。然后您的客户端脚本会读取它并将 JSON 解析为一个对象。它更干净,因为您的服务器代码没有将内容插入客户端脚本。它只是提供 JavaScript 读取的值。如果这听起来与您正在做的事情相关,那么我可以发布一个示例作为答案。 -
事实上,我会考虑将整个内容封装在
UserControl中。控件拥有脚本和文字。如果页面需要与控件进行通信,它只是提供数据。然后该控件处理渲染脚本和填充它将读取的数据。
标签: javascript c# webforms