Тестирование на null, inline, на вызове ASP.net Bind () - PullRequest
7 голосов
/ 01 сентября 2010

У меня есть немного кода, которым я начал управлять, и он начал давать сбой из-за отсутствия данных в базе данных. Этот случай может произойти в будущем, поэтому я хотел бы изящно обработать нули в передней части.

Вот текущий код:

<asp:DropDownList ID="ddlContact" runat="server"
  SelectedIndex='<%# Bind("contactInfo") == null  ? "" : Bind("contactInfo") %>'>

Похоже, что это не влияет на это, и страница все еще генерирует исключение NullReferenceException. Это должен быть Bind () из-за требования двусторонней привязки данных, поэтому я не могу использовать Eval (). Есть идеи?

Я пытался использовать нуль-коалесцентный оператор "??" но это дает мне ошибку компиляции, утверждающую, что Bind () не существует в текущем контексте. Это могло бы выглядеть так:

<asp:DropDownList ID="ddlContact" runat="server"
  SelectedIndex='<%# Bind("contactInfo") ?? string.Empty %>'>

1 Ответ

2 голосов
/ 01 сентября 2010

Отметьте это:

Bind NULL

Это должно дать вам больше идей:

Как обрабатывать нулевые значения вDataBinder.Eval ()

Обработка нулевых значений базы данных с использованием элементов управления источником данных

Когда для свойства AppendDataBoundItems установлено значение true, элемент управления DropDownList имеет значениезаполнены как статическими элементами, так и данными, сгенерированными из источника данных.Элемент статического списка, который добавляется в элемент управления DropDownList, имеет свойство Value, установленное в пустую строку.При этом элемент данных, содержащий нулевое значение, привязывается к элементу статического списка.

...