2012-02-07 7 views
1

注文処理用のデータ入力フォームを作成しており、ベストプラクティスのアドバイスを使用できます。ここで私がASP.NETで概説したことをもっとうまくいく方法があり、私がそれを見ていないのであれば、私はただ意見を出したいと思っていました。ASP.NETユーザーコントロールまたはマスターページまたはその他のデータ入力フォーム

私は新しいアプリケーションをモデリングしています。これはまったく新しいデザインです。

私は、書き込む注文入力ページを持っています。私の状況では、順序がで構成されています *ヘッダ領域を、情報 を出荷商人と顧客との*ユーザーとして、その上に表示された行項目と詳細領域には、メニュー

からそれらを追加し、私は、4つの注文の種類を持っていますこの同じレイアウトを使用しますが、それらの背後にあるビジネスロジックはすべて異なります。

私の質問はこれです。

ページレイアウトを4回複製せずに別のビジネスロジックを分離しておくことで、これを達成するための最良の方法は何ですか?

コントロール領域をユーザーコントロールにして、必要な注文の種類ごとに注文ページを作成し、各ページのビジネスロジックを記述することを検討しました。それが私のデザインに向かっています。

しかし、ベストプラクティスまたはよりエレガントな方法がある場合、私は見落としている。私は実際にアドバイスを使用することができます。

ありがとうございました!

答えて

1

レイアウトがページ全体で共通の場合、MasterPagesは良好です。ユーザーコントロールは、再利用可能なコンポーネントの小さな部分に役立ちます。

あなたが説明したことから、注文ページレイアウトにはMasterPageを使用します。次に、このマスターページを使用する4つの注文ページを作成し、ベースページクラスから継承します。マスターにサブミットオーダーボタンを配置し、各オーダーページでそれを処理することができます。オーダーアイテムのリストなど、各オーダーページに共通のコンポーネント(レイアウト以外)がある場合は、それらのユーザーコントロールを使用できます。

public abstract class OrderPage : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     this.Master.SubmitButton.Click += new EventHandler(SubmitButton_Click); 
    } 

    protected override void SubmitButton_Click(object sender, EventArgs e) { 
     CalculateTotal(); 
     SubmitOrder(); 
    } 

    protected abstract void CalculateTotal(); 
    protected abstract void SubmitOrder(); 
} 

public partial class OrderType1Page : OrderPage 
{ 
    protected override void CalculateTotal() { 
     ... 
    } 

    protected override void SubmitOrder() { 
     ... 
    } 
} 

public partial class OrderType2Page : OrderPage 
{ 
    protected override void CalculateTotal() { 
     ... 
    } 

    protected override void SubmitOrder() { 
     ... 
    } 
} 

... 
+0

ありがとう!私は各注文のレイアウトがまったく同じです。一般的な機能(各ページの上部にあるコントロールグループのような)は、ユーザーコントロールとして機能するように思えます。それは私が向かうところでした - 私は木を見るためにコードにあまり近づけていないことを確認するために第二の意見が必要でした!ありがとう! –

+0

問題ありません。あなたの質問に答えてもらえますか? – Brady

0

ユーザーコントロールは、すべてが同じ正確なレイアウトを共有していないページでの使用に柔軟性を提供します。時には、その上のコンテナが完全なカスタマイズを可能にするような方法でマスターページをレイアウトすることは困難です。ユーザーコントロールとして、ページまたはMasterPageにそのコントロールを組み込み、同じ共通コードを共有することができます。

+0

返信いただきありがとうございます。私はマスターページが行く方法であるように聞こえるように共通のレイアウトを持つために十分幸運です。再度、感謝します! –

関連する問題