【実践編】複雑な名寄せ処理の開発
ここからは【理論編】を踏まえた開発方法を説明していきますが、ASP.NETでは以下の関門がありますので、具体的な開発手順に先立って説明しておきます。
- Tableコントロールの動的生成
- Page.PreLoadイベントの利用
- 画面遷移とイベントの発生順
- イベントに応じたSession変数の扱い
Tableコントロールの動的生成
ASP.NETでは定型的な処理については、GridViewなど強力なサーバーコントロールが用意されていますが、独自の処理には困難が伴います。第3~4画面の表は典型的な例で、行列が逆転しているのでGridViewは使えません。
[ツールボックス]ウィンドウの[標準]グループ内に[Table]コントロールがありますが、列数(レコード数)が未定なのであらかじめ配置しておくことができません。
![図6 ASP.NETの[ツールボックス]ウィンドウ](http://cz-cdn.shoeisha.jp/static/images/article/6804/6804_06.gif)
従って、Tableコントロール(表)はコード側で動的に生成します。画面には[標準]グループ内の[PlaceHolder]のみ、生成後の表の置き場所として配置しておきます。
Page.PreLoadイベントの利用
コード側では、動的に生成した表内のどのラジオボタンがチェックされたかを確認する必要がありますが、Page.LoadやMultiViewのViewのActivateイベント発生時に表を配置したのでは、ボタンクリック時にチェック状況を捕捉できません。捕捉するためには、表はPage.Load以前に発生するPage.PreLoadイベント発生時に配置する必要があります。