今の自分の中でのテーマは「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>
コードの検証はしていないので誤りがある可能性があります。ご了承ください。
明日に続く。。