2010-05-19 6 views
0

J'ai une liste déroulante qui obtient des données via des objets d'entité, mais avec une navigation. Mais j'obtiens une erreur en essayant de faire ceci, n'importe qui peut m'aider s'il vous plaît.
<asp:DropDownList ID="ddlVacancy" DataValueField="ID" DataTextField='<%# Eval("Position.Name") %>' runat="server" Width="200px"/> Utilisation d'Eval pour lier une liste déroulante

Répondre

0

Vous pouvez créer une propriété dans votre objet entité comme celui-ci:

 public string PositionName 
     { 
      get 
      { 
       return Position.Name; 
      } 
     } 

puis remplacez Eval ("Position.Name") avec Eval ("positionName")

espère que cela aide

0

J'ai eu le même problème et j'ai réussi à créer un contrôle simple qui dérive de DropDownList. J'ai également implémenté un Event ItemDataBound qui peut aussi aider.

public class RTIDropDownList : DropDownList 
{ 
    public delegate void ItemDataBoundDelegate(ListItem item, object dataRow); 
    [Description("ItemDataBound Event")] 
    public event ItemDataBoundDelegate ItemDataBound; 

    protected override void PerformDataBinding(IEnumerable dataSource) 
    { 
     if (dataSource != null) 
     { 
      if (!AppendDataBoundItems) 
       this.Items.Clear(); 

      IEnumerator e = dataSource.GetEnumerator(); 

      while (e.MoveNext()) 
      { 
       object row = e.Current; 

       var item = new ListItem(DataBinder.Eval(row, DataTextField, DataTextFormatString).ToString(), DataBinder.Eval(row, DataValueField).ToString()); 

       this.Items.Add(item); 

       if (ItemDataBound != null) // 
        ItemDataBound(item, row); 
      } 
     } 
    } 
} 
Questions connexes