Série da semana: Primeiros passos no React

Veja mais

Recuperando FindControl do repeater pai no evento do repeater filho

25/02/2016

2

Olá pessoal.

Estou com dificuldade para conseguir pegar um campo do meu repeater pai no click do meu linkbutton que esta dentro de outr repeater (filho).

Meu repeater pai contem o código do relatório e demais informações e meu repeater filho contem as datas desse relatório. Quando o usuário clicar em uma determinada data eu preciso pegar esse código do pai e tbem pegar a data para assim fazer o processo. Mas não estou conseguindo fazer nem um e nem outro.

Segue meu html:
<asp:Repeater ID="Repeater1" OnItemDataBound="rptRelatorioFavoritos_ItemDataBound" runat="server">
<HeaderTemplate>
    <table>
        <tr class="titulo">
            <th colspan="4">Favoritos</th>
        </tr>
        <tr>
            <th width="5%" class="td_titulo">Relatório</th>
            <th width="10%" class="td_titulo">Assunto</th>
            <th width="20%" class="td_titulo">Descrição</th>
            <th width="25%" class="td_titulo">Clique na Data Desejada</th>
        </tr>
</HeaderTemplate>
<ItemTemplate>
    <tr class="tr_branco">
        <td class="td_branco">
            <asp:ImageButton CommandArgument='<%#DataBinder.Eval(Container.DataItem, "CodRelatorio")%>' ID="imgbFavorito" ImageUrl="~/Content/imgs/BookDel.gif" OnCommand="imgbFavorito_Command" runat="server" ToolTip="Remover do seus favoritos?" />
              <asp:Label ID="lblCodRelatorio" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "CodRelatorio")%>' />
        </td>
        <td class="td_branco">
            <asp:Label ID="lblAssunto" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "AssuntoRelatorio")%>'></asp:Label>
        </td>
        <td class="td_branco">
            <asp:Label ID="lblDescricao" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "DescricaoRelatorio")%>'></asp:Label>
        </td>
        <td class="td_branco">
            <asp:Label ID="lblLocal" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "LojaRelatorio")%>'></asp:Label>

            <asp:Repeater ID="rptRelFilho" OnItemDataBound="rptRelFilho_OnItemDataBound" OnItemCommand="rptRelFilho_OnItemCommand" runat="server">
                <ItemTemplate>
                    <asp:LinkButton ID="lkbDataRelatorio" runat="server"><%#DataBinder.Eval(Container.DataItem, "DataRelatorio")%></asp:LinkButton> 
                </ItemTemplate>
            </asp:Repeater>
            <asp:LinkButton ID="lkbDataRelatorio02" runat="server">...</asp:LinkButton>
        </td>
    </tr>
</ItemTemplate>
<FooterTemplate>
    </table>
</FooterTemplate>


Meu .cs esta assim:
protected void rptRelFilho_OnItemCommand(object source, RepeaterCommandEventArgs e)
    {

        var itensPai = e.Item.Parent.Parent;
        var lblCodRel = (Label)itensPai.FindControl("CodRelatorio");


        var link = (LinkButton)e.Item.FindControl("DataRelatorio");
        string v = link.Text;


    }


Segue a imagem do relatório para vcs terem uma noção do que eu estou tentando fazer.
[img]http://arquivo.devmedia.com.br/forum/imagem/431992-20160225-095511.png[/img]
Responder