var str = "<!-- START Script Block for Chart Expense -->
<div id='ExpenseDiv' align='center'>
Chart.
</div>
<script type="text/javascript">
var chart_Expense = new FusionCharts("../FusionCharts/FCF_Doughnut2D.swf", "Expense", "500", "350", "0", "0");
chart_Expense.setDataXML("<graph caption='Expense' numberPrefix='' formatNumberScale='0' decimalPrecision='0'><set name='February' value='15.2' /><set name='April' value='716468.68' /><set name='May' value='541645.18' /><set name='June' value='681415.5' /><set name='July' value='575417.99' /><set name='August' value='436200.21' /><set name='September' value='159725' /><set name='November' value='0.53' /><set name='December' value='54.7' /></graph>");
chart_Expense.render("ExpenseDiv");
</script>
<!-- END Script Block for Chart Expense -->"
我想在JavaScript方面这是在JavaScript字符串变量exequte这个脚本,并在页面控件的一个它的结果追加javascript变量。 这意味着这个字符串的脚本块有功能“chart_Expense.setDataXML”和“chart_Expense.render”,我想在客户端执行这个功能。
我现有的代码如下
JavaScript端
function RebindChart() {
var ddlChartType2Value = document.getElementById("ctl00_ContentPlaceHolder1_ddlChartType2").value;
$.ajax({
type: "POST",
url: "DashBoardAccount.aspx/GetChatInfo",
contentType: 'application/json; charset=utf-8',
data: "{ charttype: '" + ddlChartType2Value + "' }",
dataType: 'json',
cache: false,
success: function (result) {
document.getElementById('ctl00_ContentPlaceHolder1_FCLiteral2').innerHTML = result.d;
}
});
}
服务器端
[System.Web.Services.WebMethod]
public static string GetChatInfo(string charttype)
{
return BindExpense(charttype); // this function return string which is describe in above
}
首先你必须使它成为一个有效的字符串,除非第一个片段只是一个样本。如果是这样,摆脱'var foo =“' –
如果你有把它保存在一个单独的js文件中的选项,你可以使用'$ .getScript()'这更容易维护,并节省自己的麻烦担心在任何地方转义单引号或双引号 – Archer
将页面中的大部分js代码包含在正常情况下可能会更好,并让WebMethod返回json包含呈现图形所需的所有数据。 –