2012-01-24 6 views
0

私はC#と.NETでかなりの時間作業していますが、現在ASP.NETで初めてのWebアプリケーションを開発中です。私のボタンイベントハンドラの前にPage_Load関数が呼び出されていたことに気づいたのはかなり時間がかかりましたが、この時点ではこの動作の周りでアプリケーションが正常に動作しています。しかし、私が抱えている問題は次のとおりです。ASP.NET - ボタンをクリックした後にページ上のGridViewデータをリフレッシュ

私のアプリケーションでは、SortedListにバインドされたGridViewコントロールがあります。ボタンクリックイベントハンドラは、データをフォームにデータベースに保存し(実際にはSOAPサービス経由でデータを保存します)、GridViewがバインドされているリストを更新して、最新のデータを反映しますSOAPサービスからのリスト)。ただし、ボタンのクリックイベントハンドラが起動する前にページがリフレッシュされるため、データは実際にページに更新されたようには表示されません。このような状況を処理する適切な方法は何ですか?ページが既にリフレッシュされているにもかかわらず、ボタンハンドラがデータを保存した後、ページ上のデータをリフレッシュする、または少なくとも最新の状態にするにはどうすればよいですか?私はかなりしばらくこれを苦労してきたので、これを説明するのに役立つコード例やリンクがあれば幸いです。

ありがとうございます!条件ならばPage_Load

if (!IsPostBack) 
{ 
    //Bind your Grid 
} 
+0

これは、[ページライフサイクル](http://msdn.microsoft.com/en-us/library/ie/ms178472.aspx ')の使用の可能性があります。 – harag

答えて

0

試みは、すぐ下にあなたのコードを記述します。

if(!IsPostBack) 
     { 
     write your code here in formload. 
     } 
+0

私は実際にこれを持っているので、GridViewは最初にWebサービスからアイテムのリストを取得してページをロードするようになります。それはちょうどボタンのクリックでリストに追加しようとした直後です(メモ - ボタンのクリックハンドラが終了した後に手動でページをリフレッシュすると、私のGridViewは期待どおりですが...ボタンのクリックイベントで – JToland

+1

が新しい更新されたレコードの 'grid'を再バインドします。 –

+0

ああ!毎回データを再バインドする必要があることはわかりませんでした。私は一度バインドされた、私のリストが変更されたように、コントロールもそうだと思った。だから、DataSourceをリセットしてクリックボタンハンドラで再度バインドするだけで修正しました。ありがとう! – JToland

0

内部

0

私はページのライフサイクルに関するリソースにHaragのリンクを修正します。それはここに見つけることができる:http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx。 OPの質問に対する答えではありませんが、Webフォームをより深刻なプログラミングを始めると知っておくことは重要な概念なので、私はそれを改めて言います。

関連する問題