C# Asp.net自定义控件作为属性传递对象

C# Asp.net自定义控件作为属性传递对象,c#,asp.net,C#,Asp.net,在Asp.Net自定义控件中,我希望将对象作为属性传递(就像传递宽度/颜色一样),在设计时是否可以这样做 例如: 自定义控件是一个,我想通过 学生对象是在代码隐藏中实例化的,我的自定义面板是这样编码的 public class CustomPanel:Panel { [Browsable(true), Category("Data")] public object CustomObject { get; set; } } 您可能无法将自定义属性设置为字符串类型。 然后,您可以

在Asp.Net自定义控件中,我希望将对象作为属性传递(就像传递宽度/颜色一样),在设计时是否可以这样做

例如:

自定义控件是一个,我想通过

学生对象是在代码隐藏中实例化的,我的自定义面板是这样编码的

public class CustomPanel:Panel
{
    [Browsable(true), Category("Data")]
    public object CustomObject { get; set; }
}

您可能无法将自定义属性设置为字符串类型。 然后,您可以捕获init上的属性,并使用switch语句创建适当的对象:

    public class CustomPanel:Panel
    {
      [Browsable(true), Category("Data")]
      public string CustomObject { get; set; }
    }
然后在pageload或int中可以构建正确的对象

    switch (CustomObject)
        {
            case "Student":
                CustomObject student = new CustomObject();
                break;
            case "Staff":
                CustomObject staff = new CustomObject();
                break;
            default:
                CustomObject student = new CustomObject();
                break;
        }

为什么不能在代码隐藏中将student对象传递给CustomPanel?我可以传递它,但因为我是作为组件设计的,正在寻找设计时支持。目前我无法在design Time中分配它。我可以在aspxIs中使用Eval做些什么吗?这将成为自定义面板中的子元素吗?@James Johnson:这是一个自定义属性