2015-04-15 26 views
-1

我想填充DropDownList,但我在DataTextFieldDataValueField上遇到了一些麻煩。該下拉列表不顯示列表的元素。指定DataTextField和DataValueField後,爲什麼我的DropDownList不顯示我的List的元素?

private void llenarProfesionales() 
{ 
    List<Profesional> profesionales = daoProfesionales.getAll(); 
    DropDownProfesioanles.DataSource = profesionales; 
    DropDownProfesioanles.DataTextField = "nombre"; 
    DropDownProfesioanles.DataValueField = "id"; 
    DropDownProfesioanles.DataBind(); 
} 

這裏是我profesional類,它擴展usuario

public class Profesional: Usuario 
{ 
    long idProfesional; 
    List<Servicio> listaServicios; 
    Profesion profesion; 
    Usuario usuar; 

    Decimal comision; 

    public Decimal Comision 
    { 
     get { return comision; } 
     set { comision = value; } 
    } 


    public Profesional() 
    { 
    } 

    public long IdProfesional 
    { 
     get { return idProfesional; } 
     set { idProfesional = value; } 
    } 

    public List<Servicio> ListaServicios 
    { 
     get { return listaServicios; } 
     set { listaServicios = value; } 
    } 

    public Profesion Profesion 
    { 
     get { return profesion; } 
     set { profesion = value; } 
    } 

    public Usuario Usuar 
    { 
     get { return usuar; } 
     set { usuar = value; } 
    } 
} 

這裏是類usuario

public class Usuario 
{ 
    private long id; 

    private String nombre; 
    private String apellido; 
    private String telefono; 
    private String celular; 
    private Boolean activo; 
    private String user; 
    private String password; 
    public Usuario() 
    { 

    } 

    public Usuario(string nombre, string apellido, string telefono , string celular, string user, string password ,long id, bool activo) { 
     this.Id = id; 
     this.Nombre = nombre; 
     this.Apellido = apellido; 
     this.Telefono = telefono; 
     this.Celular = celular; 
     this.User = user; 
     this.password = password; 
     this.activo = activo; 
    } 

    public long Id 
    { 
     get { return id; } 
     set { id = value; } 
    } 

    public String Nombre 
    { 
     get { return nombre; } 
     set { nombre = value; } 
    } 

    public String Apellido 
    { 
     get { return apellido; } 
     set { apellido = value; } 
    } 

    public String Telefono 
    { 
     get { return telefono; } 
     set { telefono = value; } 
    } 
    public String Celular 
    { 
     get { return celular; } 
     set { celular = value; } 
    } 

    public String Password 
    { 
     get { return password; } 
     set { password = value; } 
    } 
    public Boolean Activo 
    { 
     get { return activo; } 
     set { activo = value; } 
    } 
    public String User 
    { 
     get { return user; } 
     set { user = value; } 
    } 
} 

回答

1

指定的公共屬性,而不是私有字段:

DropDownProfesioanles.DataTextField = "Nombre"; 
DropDownProfesioanles.DataValueField = "Id"; 

而且,沒有理由來定義你的類這樣的,在那裏你定義一個公共Usuario屬性,但也延長了Usuario類(這樣你就可以訪問它的所有屬性,但他們不會有任何價值,因爲你正在使用單獨的「Usuar」變量)。

public class Profesional : Usuario 
{ 
    ... 
    Usuario usuar; 

    ... 
    public Usuario Usuar 
    { 
     get { return usuar; } 
     set { usuar = value; } 
    } 
} 

如果要使用公共財產,然後不擴展其他類:

public class Profesional 
{ 
    ... 
    Usuario usuar; 

    ... 
    public Usuario Usuar 
    { 
     get { return usuar; } 
     set { usuar = value; } 
    } 
} 
+0

謝謝,但它不工作 – user3767613

+0

你能詳細說明嗎?你有使用這個錯誤嗎?您的DropDownList是否顯示列表中的每個項目都有一個條目,但它們全是空白並且不顯示任何文本? –

+0

我沒有得到任何錯誤,但我的下拉列表中的所有項目都像空字符串。 – user3767613

0

感謝我解決將此代碼添加到設備專業

 public String Nombre 
    { 
     get { return usuar.Nombre; } 
     set { usuar.Nombre = value; } 
    } 
答案
+0

爲什麼要擴展'Usuario'類並擁有一個公共'Usuario'屬性?只要做一個或另一個。這就是你的問題的原因。如果你打算使用這個解決方案,那麼不要打擾讓'Profesional'擴展'Usuario'類。 –

相關問題