データメンテナンス画面を作成するためのコントロールとして、DetailsView とFormView が使えます。
お任せコースで、入力もあまり便利でなくてよく「いかにもウィザードで作りました」的な画面を短時間で作りたい場合にはDetailsView はかなり便利です。自分で使うシステムのマスメン作りには最高です。
で、もう少し見た目も整えたいような場合にはFormView というのが、期待される使い分けかと思います。
ところが・・・。
FormView では、見た目を整えるためにテンプレートを修正するのですが、このテンプレートがInsertTemplate・EditTemplateという具合に分かれていて、それぞれが完全に独立なわけです。
例えば、現行ASP.NET1のDatagridでも、2.0のDataViewでも、TemplateItemにしてしまえばカラムごとにEditItemTemplateをいじれるわけですが、FormView ではEditItemTemplateの中に全データが入っているイメージになります。
すると、例えばTableタグを使って見た目を整えるという作業を、表示モード用・編集モード用・新規作成モード用といった具合に、何度もやらなければならないわけです。デフォルトが多少気が利いていればよかったのですが、項目名の横にテキストボックスが置いてあるだけで位置すらそろっていない・・・。
それよりは、DetailsView で「フィールドの編集」から各項目について「このフィールドをTemplateFieldに変換します。」ができるので、それをしてEditItemTemplateを直すほうが、かなりすっきりします。ただ、それだと縦一列に並べるようなレイアウトにしかならないので、2列表示にしたかったりするとやはりダメだとなるのでしょうけど・・・。多少妥協してもらえるマスメン画面とちゃんと作りこむべき画面と区別した上で、作りこむ場合でもFormViewを使うのかコードから普通に各テキストボックスに値をセットするのかの切り分けを考えて、というところを事前に考えて決めておく必要がありますね。もう少しトレードオフを考えて「本気編」に書いておこうと思います。
この辺の、ウィザードの画面生成における自動化とカスタマイズ容易性とのバランスは、永遠の課題のような気はしていますが。多分、各種レポート生成ツールの成果を取り入れるべきなんでしょうけど・・・。
(参考)
http://www.exconn.net/Blogs/team03/archive/2005/03/29/313.aspx
http://ukamen.hp.infoseek.co.jp/2005/FormView/