今の自分の中でのテーマは「ASP.NET開発の効率化」
どうやったらより少ない労力で作れるかを日々考えています。
効率化の方法は主に「再利用、自動化、簡単化」に分類できると思います。
それぞれについて具体的な方法を考えてみます。
○再利用
・何度も表示されるコントロール群をユーザーコントロールにする。
・表示するデータは同じだが、ページによって表示先がテキストボックスであったり、ラベルであったりする場合はマスタページとして作成する。マスタページ内のコントロールを変化させたいところをプレースホルダにしてマスタページを使用するページ側でテキストボックスにするか、ラベルにするかを制御する。
・マスタページのコントロールに表示させる場合データはマスタページのコードビハインド内で取得する。取得したデータはフィールド変数に保持しておき、aspx側でコントロールとバインドさせる。ページ側でコントロールをラベルやテキストボックス等に変化させる場合はページ側でフィールド変数とコントロールをバインドする。以下にコード例を示す。
マスタページ
<table> <th>列1<th> <tr> <td> <asp:ContentPlaceHolder id="R1C1" runat="server"> </asp:ContentPlaceHolder> </td> </tr> </table>
マスタページのコードビハインド
public String r1c1 = new String; public void Display(Int32 id) { DataSet ds = GetData(id); r1c1 = ds.r1c1; }
マスタページを使用するページ
<%@ Page masterPageFile="~/MyMaster.master" ... %> <%@ MasterType VirtualPath="~/MyMaster.master" %> <asp:Content ID="c1" ContentPlaceHolderID="R1C1" runat="server"> <asp:TextBox ID="txtR1C1" runat="server" Width="58px" Text='<%# Master.r1c1 %>'></asp:TextBox> </asp:Content>
コードの検証はしていないので誤りがある可能性があります。ご了承ください。
明日に続く。。