Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将其他控件作为属性的用户控件_C#_Asp.net_.net_Vb.net - Fatal编程技术网

C# 将其他控件作为属性的用户控件

C# 将其他控件作为属性的用户控件,c#,asp.net,.net,vb.net,C#,Asp.net,.net,Vb.net,在我的asp.net 4.0应用程序中,我在整个应用程序中有一组标准的选项卡控件,其中一个用于搜索,一个用于查看,一个用于报告。我正在更新这些选项卡,我希望能够将它们的功能打包到一个用户控件中,因为它们的功能非常相似。我遇到的问题是如何创建一个名为SeacrhTab/ViewTab/ReportTab的属性,该属性允许我根据应用程序的区域为其分配不同的用户控件,例如CompanySearchControl、ContactSearchControl等。是否有人尝试过类似的操作?我应该如何处理此问题

在我的asp.net 4.0应用程序中,我在整个应用程序中有一组标准的选项卡控件,其中一个用于搜索,一个用于查看,一个用于报告。我正在更新这些选项卡,我希望能够将它们的功能打包到一个用户控件中,因为它们的功能非常相似。我遇到的问题是如何创建一个名为SeacrhTab/ViewTab/ReportTab的属性,该属性允许我根据应用程序的区域为其分配不同的用户控件,例如CompanySearchControl、ContactSearchControl等。是否有人尝试过类似的操作?我应该如何处理此问题?

为特定布局、视图或选项卡定义(即:SearchTab、ViewTab等)创建枚举。将其指定为用户控件的属性,然后根据所需布局或功能使用该属性创建、隐藏和显示特定占位符或面板

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;
    }


}

您应该能够在代码隐藏页的分部类定义中创建常规属性。将其公开,并使其成为包含所有选项卡控件的泛型类的类型,并且应该对其进行设置

我没有为用户控件创建其他控件属性,但我确实使用了所有其他自定义类作为用户控件的属性,所以我不明白为什么它不起作用

假设CompanySearchControl和ContactSearchControl都继承自GenericSearchTabControlClass,例如:

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

如果用户控件所需的类因应用程序所在区域的不同而不同,那么如何呈现用户控件呢?e、 g.我有一个用于CompanySearch的用户控件和一个用于ContactSearch的不同用户控件。谢谢。您可以根据枚举定义要初始化和呈现的usercontrol类