如何使用C#ASP.NET C#中的对象处理空值。
下面我使用超链接在条件上做了可见的真假。
<asp:Label ID="Label3" runat="server" Text="Date not confirm"
Visible='<%#GetVisible2(Eval("DateofEvent").ToString()=="")%>'></asp:Label>
下面是我的c#代码。
public bool GetVisible2(object value)
{
if (value=="")
{
//return value.ToString() == "Visible";
return true;
}
return false;
}
每次只返回假。我不知道条件是正确还是错误。
答案 0 :(得分:0)
默认情况下,DateTime变量采用DateTime.MinValue,因此您应该将其与此进行比较,如下所示:
<asp:Label ID="Label3" runat="server" Text="Date not confirm"
Visible='<%#GetVisible2(Eval("DateofEvent"))%>'></asp:Label>
public bool GetVisible2(DateTime? value)
{
if (value == null || value == DateTime.MinValue)
{
return true;
}
return false;
}
答案 1 :(得分:0)
因为你传递的函数是一个永远不等于空字符串的布尔值:
Eval("DateofEvent").ToString()=="" // this will generate true or false
这会将布尔值传递给GetVisible2。试试这个:
<asp:Label ID="Label3" runat="server" Text="Date not confirm"
Visible='<%#GetVisible2(Eval("DateofEvent").ToString())%>'></asp:Label>
您可以将功能更改为:
public bool GetVisible2(string value)
{
return String.IsNullOrEmpty(value);
}
Tim Schmelter提出的更清洁的方法,没有任何验证方法:
<asp:Label ID="Label3" runat="server" Text="Date not confirm"
Visible='<%#String.IsNullOrEmpty(Eval("DateofEvent").ToString())%>'></asp:Label>
答案 2 :(得分:0)
您正在评估ASPX页面内的函数并将布尔值传递给GetVisible2函数。
这就是你每次都返回false的原因,因为对象值永远不是字符串,而是布尔值。
应该是
Eval("DateofEvent")
与其使用
Eval("DateofEvent").ToString() == ""
功能将是
public bool GetVisible2(object value)
{
return value!=null;
}
或者,如果你想考虑空字符串&#34; null&#34;另外,您可以执行以下操作
public bool GetVisible2(object value)
{
var s = value as string;
return value!=null || (s is string && !string.IsNullOrEmpty(value as string));
}
gettting错误:对象doest不包含对string的定义,并且没有扩展方法tostring acception可以找到object类型的第一个参数。 @OrcusZ
不是
toString()
但它是
ToString()
C#区分大小写。
答案 3 :(得分:0)
我认为在将其转换为字符串之前传递v1 = [1 NaN 8 NaN 6];
会更好,因为;如果DateofEvent
为空,则DateofEvent
将引发.ToString()
,因此更改将如下所示:
NullReference
因此传递给方法的参数将是一个对象,我们必须检查null然后检查空字符串,所以方法将是这样的:
<asp:Label ID="Label3" runat="server" Text="Date not confirm"
Visible='<%#IsVisible(Eval("DateofEvent"))%>'></asp:Label>
甚至是这样的:public bool IsVisible(object value)
{
return value != null && String.IsNullOrEmpty(value.ToString());
}
答案 4 :(得分:-1)
存在检查字符串为空的方法:
if (String.IsNullOrEmpty(value))
{
return true;
}
return false;