2012-01-18 52 views
0

在我的asp.net 4.0应用程序中,我在应用程序中有一组标准控件,它们具有一个搜索选项卡,一个用于查看,另一个用于报告。我正在更新这些选项卡的过程中,我希望能够将其功能包装到单个用户控件中,因为它们都以非常相似的方式运行。我遇到的问题是如何创建一个名为SeacrhTab/ViewTab/ReportTab的属性,它允许我根据应用程序的区域(例如CompanySearchControl,ContactSearchControl等)为其分配不同的用户控件。类似?我应该如何处理这个问题?将用户控件与其他控件作为属性

回答

0

您应该可以在页面后面的代码中的部分类定义中创建常规属性。将它公开并包含所有选项卡控件的泛型类的类型,并且应该设置它。

我还没有做出用户控件的其他控件属性,但我肯定使用了各种其他自定义类作为用户控件的属性,所以我不明白为什么它不起作用。

假设CompanySearchControlContactSearchControl既继承GenericSearchTabControlClass,例如:

public GenericSearchTabControlClass SearchTab {get;set;} 
public GenericViewTabControlClass ViewTab {get;set;} 
public GenericReportTabControlClass ReportTab {get;set;} 
0

为特定布局,视图或选项卡定义(即:SearchTab,ViewTab等)创建枚举,将其指定为UserControl的Property,然后使用该Propery创建或隐藏并显示特定的PlaceHolder或Panel,具体取决于所需的布局或功能。

public enum ControlLayoutEnum 
{ 
    SearchTab = 0, 
    ViewTab = 1, 
    ReportTab = 2 
} 

public class TabViewControl: System.Web.UI.UserControl 
{ 
    public ControlLayoutEnum ControlLayout { get; set; } 

    protected override OnInit(object sender) 
    { 
     // Create controls required or Hide/Show PlaceHolder or Panel etc 
     switch (this.ControlLayout) 
     { 
      case ControlLayoutEnum.SearchTab: // Create Search Layout 
       break; 
    } 


} 
+0

我将如何呈现出该用户控件基于这样的事实,它需要是类根据应用的领域是不同的它在?例如我有一个用于CompanySearch的用户控件和一个用于ContactSearch的不同用户控件。谢谢。 – bechbd 2012-01-18 16:53:50

+0

您可以根据Enum来定义要初始化和渲染的用户控件类 – Lloyd 2012-01-18 17:02:05

相关问题