2012-01-18 48 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

相關問題