开发者

ASP.Net User Control Template Instantiation

开发者 https://www.devze.com 2022-12-25 07:03 出处:网络
I created a user control that has a template container. <cc:SearchResultItem ID=\"SearchResultItem1\" Customer=\'<%# ((Customer)(((RepeaterItem)Container).DataItem)) %>\' runat=\"server\">

I created a user control that has a template container.

<cc:SearchResultItem ID="SearchResultItem1" Customer='<%# ((Customer)(((RepeaterItem)Container).DataItem)) %>' runat="server">                                                
    <NameTemplate>
        <%# Container.Name %>
    </NameTemplate>
</cc:SearchResultItem> 

This is control is placed in a repeater which lists some customers. The customer is than bound to the user control. When the name template is instantiated in the container, the custome开发者_如何转开发r object is not yet available, but I need to access its name because it needs to get parsed before.

protected void Page_Init(object sender, EventArgs e)
{
    if (nameTemplate != null )
    {
        // customer is null here, it is avaiable only after Page_Init...
        NameContainer container = new NameContainer(customer.Id, Parse(customer.Name));
        nameTemplate.InstantiateIn(container);
        placeHolder.Controls.Add(container);
    }
}

Question: How can I access properties set for the user control BEFORE the template container is instantiated? Thanks in advance!


I don't think you can. How could you access a databound property of the control before the control is databound?

From the code that you've posted, I don't actually see a need to do this during Init, but I'm probably missing something. Can you clarify why you need the customer during Init and not during Load or PreRender?

0

精彩评论

暂无评论...
验证码 换一张
取 消