ASP.NET自定义控件如何将对象作为属性传递

3
在Asp.Net自定义控件中,我想像传递宽度/颜色一样传递一个对象作为属性。在设计时有没有办法做到这一点?
例如:
自定义控件是一个,我想传递 学生对象在代码后台实例化,我的自定义面板编码如下:
public class CustomPanel:Panel
{
    [Browsable(true), Category("Data")]
    public object CustomObject { get; set; }
}

你为什么不能在代码后台将学生对象直接传递给CustomPanel呢? - gislikonrad
我可以通过它,但由于我正在设计组件,因此需要设计时支持。目前我无法在设计时分配它。 - user841683
在aspx中,我能用Eval做什么吗? - user841683
这将成为您自定义面板中的子元素吗? - James Johnson
@James Johnson:这是一个自定义属性。 - user841683
1个回答

0

你可以尝试不将自定义属性设置为字符串类型。 然后在初始化时捕获该属性,并使用 switch 语句创建适当的对象:

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

然后在页面加载或int中,您可以构建正确的对象

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接