Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia à todos!
Primeiramente gostaria de me apresentar! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Meu nome é Marlon Pereira e sou iniciante em Asp.Net, e venho até vocês pedir uma ajudazinha! Please!
Tenho esse código que é para gerar duas ListBox (Produtos e Selecionados);
Preciso fazer com que o usuário selecione quantos produtos ele quiser e enviar para a ListBox Selecionados num click só!
Eu consegui fazer o seguinte:
Clico em Shampoo e Sabonete, envio, mas na list selecionado só está aparecendo dois itens de Shampoo, meu código está multiplicando o primeiro selecionado pela quantia de itens selecionados!
O código é essê:
>
protected void btnIncluir_Click(object sender, EventArgs e)
{
if (this.lstProdutos.SelectedIndex >=0)
{
for (int contador = 0; contador < this.lstProdutos.Items.Count; contador++)
if (this.lstProdutos.Items[contador].Selected)
this.lstSelecionados.Items.Add(this.lstProdutos.SelectedItem);
}
}
Se alguém puder me ajudar eu agradeço muito!
Valeu galera!
Abração
Marlon Pereira
Marlon, seja bem vindo ao Fórum iMasters, de uma olhada em nossas regras: Regras do Fórum iMasters
Abraços...
Obrigado pela ajuda mas infelizmente não funcionou!
Ainda continua multiplicando o primeiro selecionado pelo numero de itens selecionados! http://forum.imasters.com.br/public/style_emoticons/default/cry.gif
Me desculpe voltar nesse assunto mas não sei como resolve-lo
o código inteiro é esse:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace DesenWebApp
{
public partial class ListBox : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (! Page.IsPostBack)
{
string[] produtos = new string[6]
{"Pasta de Dente", "Escova de Dente",
"Fio Dental", "Shampoo",
"Sabonete", "Condicionador"};
lstProdutos.DataSource = produtos;
lstProdutos.DataBind();
Panel1.Visible = false;
}
}
protected void btnIncluir_Click(object sender, EventArgs e)
{
if (this.lstProdutos.SelectedIndex >=0)
{
for (int contador = 0; contador < this.lstProdutos.Items.Count; contador++)
if (this.lstProdutos.Items[contador].Selected)
this.lstSelecionados.Items.Add(this.lstProdutos.Items[contador]);
}
}
protected void btnRemover_Click(object sender, EventArgs e)
{
if (lstProdutos.SelectedIndex >= 0)
{
lstSelecionados.Items.RemoveAt(this.lstSelecionados.SelectedIndex);
}
}
protected void btnNovo_Click(object sender, EventArgs e)
{
this.Panel1.Visible = true;
}
protected void btnLimpar_Click(object sender, EventArgs e)
{
this.lstSelecionados.Items.Clear();
}
protected void btnNovoItem_Click(object sender, EventArgs e)
{
string nome = this.txtNovoItem.Text;
if (nome.Length > 0)
{
this.lstSelecionados.Items.Add(nome);
this.Panel1.Visible = false;
}
}
protected void btnSelecionados_Click(object sender, EventArgs e)
{
this.lblSelecionados.Text = "";
for (int contador = 0; contador < this.lstSelecionados.Items.Count; contador++)
if (this.lstSelecionados.Items[contador].Selected)
this.lblSelecionados.Text += this.lstSelecionados.Items[contador].Text + "<br>";
}
protected void lstProdutos_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}Peguei o seu código e testei aqui, está funcionando. O único problema é que ele não está removendo da primeira lista. É esse o problema?
O problema é que se seleciono por exemplo "Pasta de Dente e Escova de Dente" e clico no botão incluir, o codigo não envia os dois para a outra listbox "selecionados" e sim duplica o item "Pasta de Dente".
Se puder me ajudar eu ficaria muito grato!
Valeu! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Só uma pergunta: Por meu tópico foi removido? Fiz algo errado? http://forum.imasters.com.br/public/style_emoticons/default/upset.gif
Abração!
Seu tópico não foi removido, ele simplesmente foi movido para o sub-fórum de aplicações Web por questão de organização e facilidade no momento de responder as dúvidas.
Abraços...
Rapazeada!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Se alguém puder me ajudar!! :unsure:
Como eu ficaria feliz!!!! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif
Muito estranho, aqui funcionou.
Tente criar uma aplicação nova só com dois listbox e um botão, e coloque a mesma lógica do botão incluir aqui e teste.
Como está seu cógio do aspx? Pode postar?
Fico sem opções de como ajudar :(
Resolvido!!! Valeu!! Oenning! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Refiz a aplicação e agora vou estudar para ver o que estava dando errado! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Muito obrigado!
Abração!
Hehe, bem estranho. Se você achar o problema e quiser postar aqui, fique a vontade.
Movido Plataforma .NET para Web Applications
Troque isso:
this.lstSelecionados.Items.Add(this.lstProdutos.SelectedItem);Por isso:
this.lstSelecionados.Items.Add(this.lstProdutos.Items[contador]);
Você está fazendo um for e adicionando sempre o produto SelectedItem, que num listbox é sempre o primeiro selecionado.
A linha que te passei vai adicionar o Item corrente do laço de repetição.