我正在尝试从Nhibernate对象填充下拉列表,但在使其正常工作时遇到问题。我已经创建了对象并使用以下
对其进行了映射public class Status
{
public virtual int StatusId { get; set; }
public virtual string StatusName { get; set; }
}
...
<class name="CM.Core.Status, CM.Core" table="refStatus">
<id name="StatusId" column="statusId" type="Int32">
<generator class="native"></generator>
</id>
<property name="StatusName" column="status" type="string"/>
</class>
然后我使用
填充它 public IList<Status> GetStatuses()
{
return _session.CreateQuery("select s from Status s")
.List<Status>();
}
最后,我使用
填充我的下拉列表 IList<Status> status = _provider.GetStatuses();
ddlStatus.DataSource = status;
ddlStatus.DataBind();
但是,它使用我的班级名称而不是状态值填充值和文本正确的次数
CM.Core.Status
CM.Core.Status
CM.Core.Status
CM.Core.Status
IList是否在这种情况下使用了错误的集合类型?我应该把它作为不同的东西吗?有没有办法在数据绑定之前访问类属性?
答案 0 :(得分:3)
您需要指定数据文本字段和数据值字段。
ddlStatus.DataTextField = "StatusName";
ddlStatus.DataValueField = "StatusId";
答案 1 :(得分:2)
您需要设置
ddl.DisplayMember = "StatusName";
ddl.ValueMemeber = "StatusId";