2010-05-19 101 views
0

我有一個下拉列表,通過實體對象獲取數據,但是通過導航。但我試圖做到這一點的錯誤,任何人都可以幫助我。
<asp:DropDownList ID="ddlVacancy" DataValueField="ID" DataTextField='<%# Eval("Position.Name") %>' runat="server" Width="200px"/> 使用Eval綁定下拉列表

回答

0

您可以在實體對象創建一個屬性是這樣的:

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

,然後用評估和演示代替的eval( 「Position.Name」)( 「PositionName」)

希望這有助於

0

我有同樣的問題,我設法創建一個簡單的控制派生自DropDownList。 我也實現了一個ItemDataBound事件,可以幫助。

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