как сделать asp dropdownlist принимать нулевые значения при привязке данных - PullRequest
1 голос
/ 09 декабря 2011

Я пытаюсь заполнить выпадающий список следующим оператором 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();

, но получаю сообщение об ошибке

Нулевое значение не может быть назначено члену с типом System.Int32, который является ненулевым типом значения.

Я знаю, что это потому, что он не будет принимать нулевые значения.Как я могу сделать раскрывающийся список принимать нулевые значения.Буду признателен за примеры синтаксиса

1 Ответ

1 голос
/ 09 декабря 2011

Я предлагаю вам изменить свою стратегию и либо удалить элементы с нулевым значением, либо установить для них значение по умолчанию, поскольку вы используете проекцию LINQ (вы создаете новый анонимный тип). Например, вы можете написать:

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

в вашей проекции, чтобы преобразовать нули в 0

...