我有一个下拉列表,通过实体对象获取数据,但带有导航。但是我在尝试这样做时遇到了错误,任何人都可以帮助我。
<asp:DropDownList ID="ddlVacancy" DataValueField="ID" DataTextField='<%# Eval("Position.Name") %>'
runat="server" Width="200px"/>
答案 0 :(得分:0)
您可以在实体对象中创建一个属性,如下所示:
public string PositionName
{
get
{
return Position.Name;
}
}
然后将 Eval(“Position.Name”)替换为 Eval(“PositionName”)
希望这会有所帮助
答案 1 :(得分: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 );
}
}
}
}