none
Linkbutton dentro de um Repeater RRS feed

  • Pergunta

  • Amigos, estou criando uma lista de linkButtons dentro de um repeater. 

    <ul>

    <asp:Repeater ID="ListaComidas" runat="server" >

                                       <ItemTemplate>
                                           <li><a><asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" CommandArgument="<%#Eval("at_comida") %>">  <%#Eval("at_comida") %></asp:LinkButton></a></li>
                                            
                                        </ItemTemplate>
                                   </asp:Repeater>

    </ul>

    Preciso jogar o valor do linkbutton em uma session. Como faço para pegar o valo que será exibido no <%#Eval("at_comida") %> do linkbutton??

    no .cs fala que o LinkButton1 não existe.

    Obrigado!

    sexta-feira, 26 de julho de 2013 19:06

Respostas

  • Olá Marcos,

    Está falando que o linkButton não existe porque ele está dentre de um Repeater.

    Você pode fazer dessa forma:

    1-) Armazenar o "at_comida" no value de um controle HiddenField ao invés de um CommandArgument, desta forma:

    <asp:Repeater ID="ListaComidas" runat="server" > <ItemTemplate> <li><asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">

    <%#Eval("at_comida") %>

    </asp:LinkButton> <asp:HiddenField value='<%#Eval("at_comida") %>' ID="hiddenAtComida" /> </li> </ItemTemplate> </asp:Repeater>


    E no evento ItemCommand do Repeater, pegar o valor desta forma:

    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            HiddenField meuHidden = (HiddenField)e.Item.FindControl("hiddenAatComida");
            Session["MINHA_SESSION"] = meuHidden.Value;
    
        }

    Lembrando que precisa existir uma referência no seu Repeater ao método referente ao evento.

    <asp:repeater ID="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand"></asp:repeater>

    Pode não ser a forma mais elegante talvez, mas funciona :)

    Abs


    Alexandre Felipe Malavasi Cardoso

    sexta-feira, 26 de julho de 2013 22:45