2011-12-09 12 views
1

我试图填充以下LINQ语句如何使ASP下拉列表接受空值的数据绑定

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

一个下拉列表的时候,但我得到

空值不能被分配到一个errormessage的类型为System.Int32的成员,它是不可为空的值类型。

我知道这是因为它不会接受空值。我如何让dropdownlist接受空值。我很感激语法示例

回答

1

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

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

,以空值转换为0

+0

或'b.medlemsid? 0' – canon

相关问题