【发布时间】:2014-12-29 04:13:37
【问题描述】:
我试图限制 ASP.NET 标签控件中显示的字符,这些控件的文本值数据绑定到 SQL 数据库。如果数据库中的字段不是NULL,我没有任何麻烦。如果它们为 NULL,则会出现异常“对象引用未设置为对象的实例。”
我的代码如下:
<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 而不是
IIF来缩短评估。IIF将评估所有元素/子句,以便Item.LabelDescription.ToString.Length即使您尝试对其进行测试也会导致异常。
标签: asp.net sql-server vb.net label databound