• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Virtual Void

Listbox.SelectedValue.ToString() retorna vazio. Porque?

8 mensagens neste tópico

boas. estou a ter um problema aki numa cena, e pedia para se alguem soubesse como resolver k me desse uma ajuda.

É o seguinte: tenho uma list box, kom nomes de utilizadores e pretendo que ao selecionar um desses utilizadores e clicar no botao seleccionar, esse utilizador seja eleminado. So k aparentemente o metodo Listbox.SelectedValue.ToString() retorna uma string vazia. como resolver isto? aki fika o codigo:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="EliminarUser.aspx.cs" Inherits="TRABALHO_EliminarUser" Title="PAGINA- Eliminar Utilizador" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:ListBox ID="ListBox1" runat="server" Width="138px" OnSelectedIndexChanged="Escolha"></asp:ListBox>
    <br />
    <asp:Button ID="Button1" runat="server" Height="22px" Text="Selecionar" 
        Width="83px" OnClick="QuandoClick"/>
</asp:Content>

using System;
using System.Collections;
using System.Configuration;
using System.Data;
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;

public partial class TRABALHO_EliminarUser : System.Web.UI.Page
{
    
    protected void Page_Load(object sender, EventArgs e)
    {
        ListBox1.DataSource = Membership.GetAllUsers();
        ListBox1.DataBind();
    }

    protected void Escolha(object sender, EventArgs e)
    {
        
        
    }

    protected void QuandoClick(object sender, EventArgs e)
    {
        string utilizador;

        utilizador = ListBox1.SelectedValue.ToString();
        Membership.DeleteUser(utilizador);
    }
}

Obrigado pela vossa ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando fazes bind com uma datasource existem mais 2 propriedades que "precisam" de ser afectadas, o displaymember e o valuemember (qq coisa assim parecida ;))

no teu caso ele automaticamente definiu o displaymember para apontar para os nomes dos utilizadores tendo ficado com o value member a null eventualmente. Tenta ir buscar o nome do utilizador por outra propriedade, não me lembro de cor se existe alguma SelectedText mas a propriedade Text existe de certeza!

Se o GetAllUsers retornar vários campos da tabela podes fazer algo do género:

Listbox1.DisplayMember = "Name";

Listbox1.ValueMember= "UserID";

ListBox1.DataSource = Membership.GetAllUsers();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas! mas o problema não é a fazero display, porque o display é feito corretamente. o problema é depois para o programa saber qual o ser que escolhi...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas! mas o problema não é a fazero display, porque o display é feito corretamente. o problema é depois para o programa saber qual o ser que escolhi...

Exactamente porque o value member não está afectado ele não te sabe dizer o valor escolhido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hum ok. mas de kualker maneira nao me aparece nenhum ValueMember nem DisplayMember.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Passa o código que está no Page_Load para o Page_Init e isso fica-te a funcionar. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora