2012-02-27 25 views
0

私はGridViewとグラフを持っています。私はGridviewからの経過時間のデータをプロットしています。Gridviewからのグラフの更新 - Gridview更新後のグラフの更新

enter image description here

問題:チャートは、GridViewコントロールが行うと同時に更新されません。それは常にワンステップバックです(追加のクリックが1回必要です)。

メカニズム:これは時間経過グラフです。開始日と終了日があり、それらを特定の方法でプロットしています。だから私は、私がページリフレッシュのアプローチを試みたが、それはうまくいきませんでしたをPage_Load機能

foreach (GridViewRow row in GridView1.Rows) 
     { 
     // read the values that I need from the Grid 
     // and assign them to chart to create the chart 
     } 

GridView1.DateBind(); 
Char1.DataBind(); 

にグリッドで値を読み取ります。私は理解しようとしています、私は何か間違っているのですか? 3Dボタンは、方法とそれが間違っていることのうちの1つでうまく機能します。つまり、その場で作成したものではなく、SQLDataSourceから実際のクエリを実行します。

嫌疑:問題のSQLDataSourceを疑っています。私はASPXのページに1つ入れました。私は飛んでSQLクエリを変更し、私はそれが問題になると思いますか?

+0

あなたが何を意味するかを? 前回の検索の値が表示されますか? もしそうであれば、Chartを確保するためにforeachを実行する前にGridViewをDataBindする必要があるかもしれません。 。 。 – Roise

+0

ご覧のとおり、GridViewには値がありますが、これらの値はグラフに表示されません。私は再度検索をクリックしなければなりません。私はGridViewとChartの両方でデータを更新したDataBind()を使用しました。 –

答えて

0

いくつかのUpdatePanelを使用していますか?

たぶん、あなたはこのような何か試すことができます:「それは常にバック一歩である(1回の余分なクリックが必要です)」

DataTable dt = new DataTable(); 
dt.Columns.Add("Column1"); 
dt.Columns.Add("Column2"); 

foreach (GridViewRow row in GridView1.Rows) 
{ 
    dt.Rows.Add(GridView1.HeaderRow.Cells[0].Text, row.Cells[0].Text); 
} 

cht.DataSource = dt; 

cht.Series["serie"].XValueMembers = "Column1"; 
cht.Series["serie"].YValueMembers = "Column2"; 

cht.DataBind(); 
+0

No.グリッドSQLデータソースおよびチャード。それはマスターページを持っています。 –

+0

だから、チャートのデータはforeachのみに基づいているのですか、それともSqlDataSourceにもリンクされていますか?仰るとおりです。あなたのsqldatasourceには何かがあると思います... –

+0

グラフはSQLDataSourceに添付されていません。私はforeachを使用して手動でデータをマッピングしています。 –

関連する問題