Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marlon Pereira

[Resolvido] Enviar Selecionados

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)
		{

		}
	}
}

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hehe, bem estranho. Se você achar o problema e quiser postar aqui, fique a vontade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.