我正在使用devexpress JS Charts,他们接受以下格式的数据:
[{ category: 'Oceania', value: 35 },{ category: 'Europe', value: 728 }]
通过将DataTable转换为Json,我能够在后端代码中获得完全相同的格式。 (我根据用户的选择运行了几个查询后得到了数据表)
一切都工作正常,直到我决定使用UpdatePanel来避免每次用户选择一个选项时页面中的回发(请注意我没有经历过这样的事情)。但是,现在,我意识到我不能用javascript调用非静态方法来获取数据。 我想我能做的就是每次我有一个ajax回发,我会运行一个方法并插入一个隐藏的字段数据,然后用javascript抓住它并填充我的图表。当我这样做它没有工作,因为数据存储为字符串...我尝试了几件事,但我简单无法使这项工作......
我之前抓住了数据(回帖后)
var data= <%=GetData()%>
GetData()是一个返回字符串
的C#方法private string GetJsonFormat(DataTable table)
为了填充图表,我必须使用
$("#divID").dxPieChart({dataSource: data});
如果我将数据输入到输入字段并像这样抓取
var data= $('#inputID').val();
由于字符串引号不起作用......我甚至试图删除这样的引号
data.substring(1,data.length()-1)
但也没有工作......
有人可以看到另一种解决方法或解决此问题吗?
答案 0 :(得分:1)
正确的方法是使用AJAX。例如,jQuery具有用于从服务器获取JSON内容的内置函数。
http://api.jquery.com/jQuery.getJSON/
这非常简单。最简单的方法是让你的按钮(或触发事件的任何东西)简单地调用:
$.getJSON('url/to/json/content', function(data) {
// data is the returned JSON object so use it as you like
});