NHibernate IList 作为下拉数据源

本文关键字:数据源 IList NHibernate | 更新日期: 2023-09-27 17:55:33

我正在尝试从 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 是否是要使用的不正确的集合类型? 我应该把它塑造成不同的东西吗? 有没有办法在数据绑定之前访问类属性?

NHibernate IList 作为下拉数据源

您需要指定数据文本字段和数据值字段。

   ddlStatus.DataTextField = "StatusName";
   ddlStatus.DataValueField = "StatusId";

你需要设置

ddl.DisplayMember = "StatusName";
ddl.ValueMemeber = "StatusId";