ASP.NET AJAXを使って、顧客情報の閲覧画面を作成してみた。
こんな感じ。
データの表示順は、取引先情報-事業所情報-営業所情報の3段階。取引先1つに対して事業所は多数、事業所1つに対して営業所は多数という関係。
取引先情報を元にSQLで事業所と営業所情報を取得して、Menuコントロールに名前で表示させる。
事業所名をクリックすると、事業所データと営業所のMenuコントロールが更新される。
営業所名をクリックすると、営業所のデータが更新される。
通常は、クリックが発生するたびにページ全体が更新されて情報が切り替わるが、GoogleMapを利用していることもあり、少々ページ変遷に時間がかかってうっとおしい。。。
というわけで、UpDatePanelを利用して、部分更新にチャレンジ。
単純に、事業所データと営業所データのFormViewをそれぞれUpdatepanelで囲っただけだと、どうも動作がおかしい。
事業所データと営業所データはリンクしているので、ふたつのデータ更新をうまくやるにはどうしたらいいかということで、「入れ子」!が思いついた。
Updatepanelの入れ子の場合、親子の挙動にパターンがある。このあたりは、CodeZineの次の記事が参考になりました。
触ってみようASP.NET 2.0 AJAX Extensions
それにしてもPostBackの挙動はやっかいだ。