2

我在使用 asp.net 面板的可见属性时遇到问题。基本上我有一个页面调用数据库表并在详细信息视图中返回结果。但是,返回的一些值是空的,如果是这样,我需要隐藏它旁边的图像。

我正在使用面板来确定是隐藏还是显示图像,但在声明中遇到问题:

visible='<%# Eval("addr1") <> DBNull.Value %>'

我也试过这些:

visible='<%# Eval("addr1") <> DBNull.Value %>'

visible='<%# IIf(Eval("addr1") Is DbNull.Value, "False","True") %>'

当我使用这些时,我得到了错误:

编译器错误消息:CS1026:) 预期

关于语法应该是什么的任何帮助都会很棒。

谢谢

4

6 回答 6

6

您的语法说 VB.NET,但您的编译器说 C#(CS* 编译器错误)。因为我更信任你的编译器:

Visible='<%# Eval("addr1") != DBNull.Value %>'
于 2008-12-19T14:09:10.717 回答
2

我讨厌数据绑定(出于很多原因,包括这个),每当我有一个过于复杂的表达式要绑定时。我一直在后面的代码中声明它并调用它来做脏活。

就像是

> visible='<%# GetIsVisible(Eval("addr1"))  %>'

然后您定义您的“GetIsVisible”方法以将单个对象作为参数。我将把它留给你,因为你使用的是 VB,我肯定会杀掉它。

编辑:刚刚注意到您说您使用的是 C# 如果它在 C# 中,您需要使用 != 运算符,C# 中没有 <> 运算符。

> visible='<%# Eval("addr1") <> DBNull.Value %>'

需要像

> visible='<%# Eval("addr1") != DBNull.Value %>'

我也很可能只使用Convert.IsDBNull

> visible='<%# !Convert.IsDBNull(Eval("addr1")) %>'
于 2008-12-19T14:02:35.130 回答
0

很抱歉带回了一个旧线程,只是想说:

可见='<%# !Convert.IsDBNull(Eval("addr1")) %>'

这行得通 - 传奇

谢谢大家

于 2009-01-08T15:48:45.890 回答
0

试试: visible='<%# (Eval("addr1") is DbNull.Value?"False":"True") %>'

iif 的正确语法是 (condition?if true this value : if false this value) 假设您使用 c#

于 2008-12-19T14:04:10.540 回答
0

嗯...

这行得通吗?

visible='<%= IIf(Eval("addr1") Is DbNull.Value, "False","True") %>'

或者你实际上是否有一个分号,就像这样(你不应该有 BTW)

visible='<%# IIf(Eval("addr1") Is DbNull.Value, "False","True"); %>'
于 2008-12-19T14:05:29.507 回答
0

黑暗中的更多刺,试试这个

visible="<%# IIf(Eval('addr1') Is DbNull.Value, 'False','True') %>"
于 2008-12-19T14:08:08.987 回答