2012-06-15 29 views
1

讓我們說我有一個下拉菜單/文本框/ GridView的等 所有這一切都是由一個參數(或多個參數)條件的用戶控件

比方說,我加入我的用戶的頁面控制的用戶控件並設置是這樣的:

userControl1.Type = Advanced; 

或者

userControl1.Type = Regular; 
我在多個地方的usercontrol

然後,我有這樣的:

if Type ==Advanced 
    gridview.DataSource=dataTableAdvanced; 
    else if Type==Regular 
    gridview.DataSource = dataTableRegular; 

或者類似的東西:

if Type==Advanced 
dropdown1.Visible=true 
else 
dropdown1.Visible=false 

控制是越來越混亂很快,如果我有一個參數,比方說,五個不同的值可用。有沒有更好的技術來做到這一點?

+0

so ...這就是你正在編程的C#或VB.NET嗎? – peroija

+0

@peroija,我會說這與這個特定的問題無關,但c# – user194076

回答

4

您的高級控件可以從您的常規控件派生並覆蓋設置依賴對象的方法。

class RegularControl 
{ 
    public virtual void SetStuff() { //visible, data source, etc } 
} 
class AdvancedControl: RegularControl 
{ 
    public override void SetStuff() { // same deal } 
} 
1

這聽起來像你應該真的有2個控件,一個高級和一個普通。

+0

但他們分享了很多的通用代碼。 – user194076

+1

@ user194076:如果它有很多通用代碼,那麼你不會有很多If ... else語句。 Mike和EricH是對的,你可能在這裏有兩個控件。但是,你可以創建一個基本的控制,它可以有一些預設..而你的普通/高級控制只能改變它需要的東西。 – Jeremy