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

Virtual Void

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

Recommended Posts

Virtual Void

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

Share this post


Link to post
Share on other sites
vitortomaz

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();

Share this post


Link to post
Share on other sites
Virtual Void

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...

Share this post


Link to post
Share on other sites
vitortomaz

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.