2012-06-15 33 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