Я пытаюсь ограничить символы, отображаемые в элементах управления Label ASP.NET, которые привязаны к базе данных SQL для базы данных SQL. Если поле в базе данных не является NULL, у меня нет никаких проблем. Если они NULL, я получаю исключение «Ссылка на объект не установлена в экземпляр объекта».Как вы обрабатываете значения NULL в элементах управления DataBound?
Мой код выглядит следующим образом:
<asp:Label ID="LabelDescriptionLabel" runat="server" Text='<%# IIf(Not IsDBNull(Item.LabelDescription), IIf(Item.LabelDescription.ToString.Length > 30, Left(Item.LabelDescription, 30) & "...", Item.LabelDescription), Item.LabelDescription)%>' />
Я также попытался следующие, без везения:
<asp:Label ID="LabelDescriptionLabel" runat="server" Text='<%# IIf(Not IsNothing(Item.LabelDescription), IIf(Item.LabelDescription.ToString.Length > 30, Left(Item.LabelDescription, 30) & "...", Item.LabelDescription), Item.LabelDescription)%>' />
Я использую ASP.NET с VB.NET. Я также попытался использовать метод CSS «text-overflow: ellipsis», но у меня были некоторые проблемы с форматированием таблицы, которые я не разрешил.
Есть ли способ обработать эти значения NULL и предотвратить исключения во время выполнения?
Спасибо!
использовать новый (ish) [If Operator] (http://msdn.microsoft.com/en-us/library/bb513985.aspx) вместо 'IIF' для короткого замыкания оценок. 'IIF' будет оценивать все элементы/предложение так, что' Item.LabelDescription.ToString.Length' вызовет исключение, даже если вы попытались его протестировать. – Plutonix