ASP自定义控件中的多级绑定到属性

时间:2019-01-16 15:54:54

标签: c# asp.net custom-controls

我目前有一个自定义控件

class MyControl : CompositeControl {
    Foo Entity { get; set; }
    string PropertyName { get; set;}
    //...
    protected override void OnLoad(EventArgs e)
    {
        var v = typeof(Foo).GetProperty(PropertyName).GetValue(Entity);
        //...
        var _ = Entity.OtherProperty;
        //...
    }
}

//and a class

class Foo {
    string Bar { get ;set; }
    string OtherProperty { get; set; }
}

我在页面中可以做的就是将此控件用作

<MyControl id="myControl" Entity="<%# MyEntity %>" PropertyName="Bar"></MyControl>

当然MyEntity是页面上的受保护属性

protected Foo MyEntity { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack) return;

    MyEntity = new Foo { Bar = "Hello World" OtherProperty="..." };
}

我想做的就是像这样

<MyControl id="myControl" Property="<%# MyEntity.Bar %>" ></MyControl>

但是,以某种方式,MyControl仍可以同时知道实体(Foo对象)和PropertyName(“ Bar”)。

我必须仍然能够在控件中做

        var v = typeof(Foo).GetProperty(PropertyName).GetValue(Entity);
        //...
        var _ = Entity.OtherProperty;

或类似。

0 个答案:

没有答案
相关问题