Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正确访问JavascriptSerializer JSON字符串_Javascript_Vb.net_Json_Serialization - Fatal编程技术网

Javascript正确访问JavascriptSerializer JSON字符串

Javascript正确访问JavascriptSerializer JSON字符串,javascript,vb.net,json,serialization,Javascript,Vb.net,Json,Serialization,在Javascript中,我调用一个函数,从数据表中检索数据并将其转换为javascriptSerializer,然后在Javascript图表中使用数据。第一次一切正常,只要我更改数据集选择参数,如日期等,并再次调用函数PopulateChart()尝试提取一组新的数据,我就无法在javascript中检索它。数据和json字符串在服务器上正确填充,但在客户端上没有正确填充,旧的数据字符串仍然存在 var chartData仍然显示旧数据,即使是通过返回的序列化程序。Serialize(行)显

在Javascript中,我调用一个函数,从数据表中检索数据并将其转换为javascriptSerializer,然后在Javascript图表中使用数据。第一次一切正常,只要我更改数据集选择参数,如日期等,并再次调用函数PopulateChart()尝试提取一组新的数据,我就无法在javascript中检索它。数据和json字符串在服务器上正确填充,但在客户端上没有正确填充,旧的数据字符串仍然存在

var chartData仍然显示旧数据,即使是通过返回的序列化程序。Serialize(行)显示服务器上的正确数据

下面是我的代码和我试图实现的目标

ASPX

var chartData=
仅在每次页面加载时得到服务器端的评估,
是一个
asp.net
包装器,用于在页面请求时呈现网页中的内容。它不会使客户端的JavaScript可以使用PopulateChart()函数

您需要通过ajax调用或使用指示要加载的数据的请求参数重新加载整个页面来加载新数据

下面是一篇关于使用jquery的asp.net和ajax的codeproject的文章


如果您的问题是javascript部分,请向我们展示javascript代码和服务器响应的外观。我已经用更多代码更新了我的帖子,并试图解释更多内容,如果仍然不清楚,请告诉我谢谢@Bergi
var chartData=
不会在客户端动态更新,因为它只在页面加载时在服务器端进行计算。如果不在服务器端调用函数PopulateChart()来检索返回的函数,它将在第一次运行。如果不是的话,我该怎么做呢?对不起,Javascript对我来说是新的。谢谢@ChristianWestmanOk,这很有意义,如果你知道任何例子或链接,你能给我提供一个例子或链接吗。谢谢@ChristianWestman
                var chartData = <%= PopulateChart() %>;
            Public Function PopulateChart() As String

                ''Get Chart Data
                Dim daChart As New dsSVTableAdapters.clsChart
                Dim dtChart As New dsSV.webV1_ChartsDataTable
                Dim drChart As dsSV.webV1_ChartsRow

                dtChart = daChart.GetChart(hChartID.Value)

                If dtChart.Rows.Count > 0 Then

                    drChart = dtChart.Rows(0)
                    hChartName.Value = drChart.Description

                    HInterval.Value = drChart.Interval
                    Dim dtData As DataTable
                    Dim ds As New DataSet()
                    ds = GetData(4, DateTime.Parse("2012-05-01"), DateTime.Parse("2012-06-30"))
                    dtData = ds.Tables(0)

                    Dim serializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer()
                    Dim rows As New List(Of Dictionary(Of String, Object))

                    Dim row As Dictionary(Of String, Object)

                    For Each dr As DataRow In dtData.Rows
                        row = New Dictionary(Of String, Object)
                        For Each col As DataColumn In dtData.Columns
                            If col.ColumnName = "DateAndTime" Then
                                Dim dts As DateTime = DateTime.Parse(dr(col).ToString())
                                row.Add(col.ColumnName, dts.ToString("yyyy-MM-dd hh:mm:ss"))
                            ElseIf col.ColumnName = "Time" Then
                                Dim ts As DateTime = DateTime.Parse(dr(col).ToString())
                                row.Add(col.ColumnName, ts.ToString("hh:mm:ss"))
                            Else
                                row.Add(col.ColumnName, dr(col))
                            End If
                        Next
                        rows.Add(row)
                    Next

                    serializer.MaxJsonLength = Int32.MaxValue


                    Return serializer.Serialize(rows)
                End If

            End Function