如何使asp下拉列表在数据绑定时接受空值

时间:2011-12-09 12:21:54

标签: c# asp.net .net data-binding drop-down-menu

我正在尝试使用以下LINQ语句填充下拉列表

var beskeder = from b in db.beskeds
            join v in db.vedhaeftedeFilers on b.beskedId equals v.beskedId into x
            from v in x.DefaultIfEmpty()
            select new
            {
                beskedId = b.beskedId,
                tekst = b.tekst,
                dato = b.dato,
                behandlet = b.behandlet,
                medlemsid = b.medlemsid,
                dokumentid = b.dokumentId,
                filid = v.filId,
                filnavn = v.filnavn,
                filtype = v.filtype,
                data = v.data,
                DisplayText = "Besked fra bruger " + b.medlemsid.ToString() + ", " + b.dato
            };

DropDownList1.DataSource = beskeder;
DropDownList1.DataValueField = "medlemsid";
DropDownList1.DataTextField = "DisplayText";
DropDownList1.DataBind();

但我收到错误消息

  

无法将null值分配给System.Int32类型的成员,该类型是不可为空的值类型。

我知道这是因为它不接受空值。如何使下拉列表接受空值。我会很感激语法示例

1 个答案:

答案 0 :(得分:1)

我建议您更改策略,并删除具有空值的项目,或者为它们设置默认值,因为您正在使用LINQ投影(您创建新的匿名类型)。例如,你可以写:

 select new
 {
      medlemsid = b.medlemsid == null ? 0 : b.medlemsid
 };
投影中的

,将空值转换为0