Usuário com melhor resposta
Button com código do "produto"

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
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
- Marcado como Resposta Alexandre Telles quarta-feira, 4 de maio de 2016 16:41
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
- Marcado como Resposta Alexandre Telles quarta-feira, 4 de maio de 2016 16:41
-
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