none
Button com código do "produto" RRS feed

  • Pergunta

  • Bom dia!!
    Tenho o seguinte código que lista todos os carros que eu tenho no BD:

    <div class="row">
                    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="DSCarros">
                        <ItemTemplate>
                            <div class="col-md-4">
                                <div class="thumbnail">
                                    <img src="/Uploads/<%# Eval("imagem") %>" alt="">
                                    <div class="caption">
                                        <h3><%# Eval("nome") %></h3>
                                        <p><%# Eval("marca") %></p>
                                    </div>
                                    <asp:Button ID="Button" runat="server" Text="Informações" />
                                </div>
                            </div>
                        </ItemTemplate>
                    </asp:Repeater>
                    <asp:SqlDataSource ID="DSCarros" runat="server" ConnectionString="Data Source=.\sqlserver;Initial Catalog=DBteste;Integrated Security=True" ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM [Carro]"></asp:SqlDataSource>
                </div>

    Como o botão "Informações é gerado dinamicamente, eu quero fazer o seguinte com ele. quando for apertado, abrir um popup, com as informações completa do carro. Para abrir o popup eu tenho o código, mas preciso sabe de qual produto é o botão. Eu pensei em algo do tipo: 

    <asp:Button ID="Button<%# Eval("id") %>" runat="server" Text="Informações" />
    Mas isso n funciona, mesmo que funcionasse, no meu codebehind "consultar-carro.aspx" teria que gerar um método onClick pra cada botão. Então pensei se n teria como fazer isso via scrip, e quando abrir a página do popup, ele mandar pra mim o id do carro, e então la dentro eu conseguiria me virar
    quarta-feira, 4 de maio de 2016 12:59

Respostas

  • Bom dia,

    para pegar o ID do botão clicado, tem que adicionar evento no repeater OnItemCommand.

    no botão tem que adicionar

    <asp:Button ID="Button" CommandArgument='<%# Eval("ID") %>' CommandName="btnInformacoes" runat="server" Text="Informações" />

    e no codebehind ficaria assim:

    protected void Repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
     if (e.CommandName == "btnInformacoes")
            {
                string[] commandArgsAccept = e.CommandArgument.ToString().Split(new char[] { ',' });
                string ID = commandArgsAccept[0].ToString();
    //a variavel ID vai pegar o ID do carro selecionado
            }
    
    }

    Marque como resposta se foi útil,

    Abraço

    quarta-feira, 4 de maio de 2016 13:35

Todas as Respostas

  • Bom dia,

    para pegar o ID do botão clicado, tem que adicionar evento no repeater OnItemCommand.

    no botão tem que adicionar

    <asp:Button ID="Button" CommandArgument='<%# Eval("ID") %>' CommandName="btnInformacoes" runat="server" Text="Informações" />

    e no codebehind ficaria assim:

    protected void Repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
     if (e.CommandName == "btnInformacoes")
            {
                string[] commandArgsAccept = e.CommandArgument.ToString().Split(new char[] { ',' });
                string ID = commandArgsAccept[0].ToString();
    //a variavel ID vai pegar o ID do carro selecionado
            }
    
    }

    Marque como resposta se foi útil,

    Abraço

    quarta-feira, 4 de maio de 2016 13:35
  • Muito obrigado.
    Funcionou.
    • Sugerido como Resposta Danilo Telles quinta-feira, 5 de maio de 2016 12:53
    • Não Sugerido como Resposta Danilo Telles quinta-feira, 5 de maio de 2016 12:53
    quarta-feira, 4 de maio de 2016 16:41