ASP.NET Загрузка пользовательского элемента управления в повторитель - PullRequest
0 голосов
/ 23 марта 2010

У меня есть элемент управления Repeater, который загружает экземпляры созданного мной пользовательского элемента управления. Этот ретранслятор выглядит так:

<asp:Repeater ID="myRepeater" runat="server" OnLoad="myRepeater_Load">
  <HeaderTemplate>
    <table border="0" cellpadding="0" cellspacing="0">
  </HeaderTemplate>

  <ItemTemplate>
    <tr><td><my:CustomControl ID="myControl" runat="server" 
      OnLoad="myControl_Load" />
    </td></tr>
  </ItemTemplate>

  <FooterTemplate>
    </table>
  </FooterTemplate>
</asp:Repeater>

Я связываюсь с повторителем через обработчик событий myRepeater_Load. Мой пользовательский элемент управления используется для визуализации элемента в повторителе. Из-за этого я пытаюсь установить свойства для пользовательского элемента управления во время обработчика событий myControl_Load. Однако я не знаю, как получить доступ к текущему элементу во время события myControl_Load.

Есть ли способ передать текущий элемент или получить доступ к текущему элементу во время события myControl_Load? Если да, то как?

Спасибо,

Ответы [ 3 ]

3 голосов
/ 23 марта 2010
<asp:Repeater ID="rptrDemo" runat="server" OnItemDataBound="rptrDemo_ItemDataBound">
    <ItemTemplate>
        <demo:Sample runat="server" ID="sampleControl" />
    </ItemTemplate>
</asp:Repeater>


protected void rptrDemo_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.DataItem != null)
    {
        SampleControl sampleControl = (SampleControl)e.Item.FindControl("sampleControl");
        // do whatever
    }
}
0 голосов
/ 23 марта 2010

использовать событие OnItemDatabound повторителя

        void r_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            CustomControl ctl = (CutonControl)e.Item.FindControl("myControl");
        }
    }
0 голосов
/ 23 марта 2010

Вам необходимо использовать событие повторителя OnItemDatabound.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...