Как предоставить «данные» пользовательскому элементу управления внутри ретранслятора?

Может ли кто-нибудь объяснить самый простой способ предоставить данные элементу управления user внутри ретранслятора?

У меня есть следующее:

Default.aspx

<!-- this.GetData() returns IEnumerable<Object> -->
<asp:Repeater runat="server" datasource='<%#this.GetData()%>'>
    <ItemTemplate>
        <my:CustomControl runat="server" datasource='<%#Container.DataItem %>
    </ItemTemplate>
</asp:Repeater>

Codebehind

    protected void Page_Load(object sender, EventArgs e)
    {
        this.DataBind();
    }

CustomControl.ascx

<!-- Object has property Title -->
<h1><%#this.DataSource.Title%></h1>

Отложенный код:

[System.ComponentModel.DefaultBindingProperty("DataSource")]
public partial class CustomControl : System.Web.UI.UserControl
{
    public Item DataSource { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        var x = this.DataSource; //null here
    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        var x = this.DataSource; //still null
    }
}
5
задан John Saunders 7 April 2015 в 02:42
поделиться