0

だから私は自分のasp.net Webサイトでこのjavascriptを使用しようとしています https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart

このような多次元データテーブルに変換したデータを含むコードビハインドの配列があります。

<in codebehind vb>
Public Property datat As DataTable

For outerIndex As Integer = 0 To 2
    Dim newRow As DataRow = table.NewRow()
    For innerIndex As Integer = 0 To 2
            newRow(innerIndex) = Array(outerIndex, innerIndex)
    Next
    table.Rows.Add(newRow)
Next

datat = table

<in asp>

function drawChart() {
    var data = <%=datat%>

データテーブルが定義されていないというエラーが常に発生します。

私の新作

<in asp>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("visualization", "1", {packages:["corechart"]});
    google.setOnLoadCallback(drawcharts);
    function drawcharts() {
        var data = google.visualization.arrayToDataTable([
            ['X', 'MW'],
      [<%=mwtimepublic%>, <%=mwarraypublic%>]
        ]);

        var options = {
            title: 'MW Trend'
        };

        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    });
</script>

Public Function Dtable() As DataTable Dim startdate As String Dim enddate As String

    If FirstRun = False Then
        datat.Clear()
    End If

    If FirstRun = True Then
        FirstRun = False
        enddate = Date.Today
        startdate = DateAdd(DateInterval.Day, -20, Date.Today)
    Else
        enddate = TextBox2.Text
        startdate = TextBox1.Text
    End If

'<confidential code></confidentialcode>

    Dim mwaray(pdata.Count)
    Dim mwtime(pdata.Count)
    Dim table As New DataTable
    table.Columns.Add("X")
    table.Columns.Add("MW")
    Dim i As Integer
    Dim x As Integer
    For i = 1 To pdata.Count
        mwaray(i) = pdata(i).Value
        If mwaray(i) > upperlimit Then
            upperlimit = mwaray(i) + 50
        End If
    Next

    For i = 1 To pdata.Count
        mwtime(i) = "'" & pdata(i).TimeStamp.LocalDate.Month.ToString() & "/" & pdata(i).TimeStamp.LocalDate.Day.ToString() & "/" & pdata(i).TimeStamp.LocalDate.Year.ToString() & " " & pdata(i).TimeStamp.LocalDate.TimeOfDay.Hours.ToString() & ":" & pdata(i).TimeStamp.LocalDate.TimeOfDay.Minutes.ToString() & ":" & pdata(i).TimeStamp.LocalDate.TimeOfDay.Seconds.ToString() & "'"
    Next

    For i = 1 To pdata.Count
        mwarraypublic.Add(mwaray(i))
    Next

    For i = 1 To pdata.Count
        mwtimepublic.Add(mwtime(i))
    Next

End Function

まだグラフを描画できません

4

2 に答える 2

0

投稿したコードサンプルはコンパイルしないでください。Visual Basicには、自動実装されたプロパティがあります。これは、コードの最初の行にあるように見え、その後にデータテーブルとは関係のないブロックが続きます。

コードをプロパティゲッターに入れてみてください。

Public ReadOnly Property datat As DataTable
   Get
      For outerIndex As Integer = 0 To 2
          Dim newRow As DataRow = table.NewRow()

          For innerIndex As Integer = 0 To 2
              newRow(innerIndex) = Array(outerIndex, innerIndex)
          Next

          table.Rows.Add(newRow)
      Next

      Return table
   End Get
End Property
于 2012-11-11T19:34:01.097 に答える
0

codebehind から javascript への配列を取得しながら jquery ui オートコンプリートを作成する方法についてのビデオを作成しました

6:00 にスキップして、配列の作成方法を確認して ください http://www.youtube.com/watch?v=ULHSqoDHP-U&list=UUgtKyNvllU9E6c2Mi8OtzCQ&index=6&feature=plcp

PageMethods.YourWebMethod(function(results){
  var data = resluts;
  //the rest of your code goes here...
});

アップデート:


Google は実際に配列の配列をデータテーブルに変換します。つまり、行の配列を返す必要があり、行自体は列値の配列です。

したがって、コード ビハインドでは、次の最初のインポート webservices を実行します。

Imports System.Web.Services

次に、配列リストを返す関数を使用して webmethod を作成します

<WebMethod()>
Public Shared Function Dtable() As ArrayList
dim table As New ArrayList
Dim YourDataSetTable as new Dataset.YorDataTable
'fill you table here

'first get column names as the first row/array
dim colNames as New ArrayList

For Each col as DataColumn in YourDataSetTable.Columns
   colNames.Add(col.ColumnName)
Next
table.Add(colNames)

'then on to the data
For Each r as DataRow in YourDataSetTable .Rows
  dim colVals as New ArrayList
  For Each col as DataColumn in YourDataSetTable.Columns
    colVals.Add(r.Item(col.ColumnName))
  Next
  table.Add(colVals)
Next
Return table
End Function

次にJavaScriptで

PageMethods.Dtable(function(results){
  var data = resluts;
  //the rest of your code goes here...
});

pagemethods が有効になっているページにスクリプト マネージャーがあることを確認してください。

于 2012-11-11T17:50:01.060 に答える