日々精進

新しく学んだことを書き留めていきます

ASP.NET開発の効率化

今の自分の中でのテーマは「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>



コードの検証はしていないので誤りがある可能性があります。ご了承ください。


明日に続く。。