C# 嵌入式代码块中的反布尔运算

C# 嵌入式代码块中的反布尔运算,c#,asp.net,C#,Asp.net,我通过数据源中布尔类型的列控制GridView中控件的可见性。 在标记中,我使用嵌入的代码块: <asp:Label ID="LabelTitle" runat="server" Text = '<%# Bind("Title") %>' Visible='<%# Eval("SQL_Column") %>'/> 有没有办法颠倒这个表达式?如果SQL_列为false,我希望显示Textbox TextBoxTitle,反之亦然 差

我通过数据源中布尔类型的列控制GridView中控件的可见性。 在标记中,我使用嵌入的代码块:

<asp:Label ID="LabelTitle" runat="server" 
           Text = '<%# Bind("Title") %>' Visible='<%# Eval("SQL_Column") %>'/>

有没有办法颠倒这个表达式?如果SQL_列为false,我希望显示Textbox TextBoxTitle,反之亦然

差不多

Visible='<%# Eval(!"SQL_Column") %>'
Visible=''
我不想从代码背后做这件事


马丁

你需要做你的不
Eval()语句之外反转

!(bool)Eval("SQL_Column")
您拥有它的方式,
!“…”
表示您试图对字符串本身应用not操作,这没有意义。在
Eval()
之前,not操作意味着您正在尝试反转计算的返回值


请注意,您需要显式地将计算值从对象强制转换为布尔值,以便能够将其反转。

您需要执行not
Eval()语句之外反转

!(bool)Eval("SQL_Column")
您拥有它的方式,
!“…”
表示您试图对字符串本身应用not操作,这没有意义。在
Eval()
之前,not操作意味着您正在尝试反转计算的返回值


请注意,您需要将计算值从对象显式转换为布尔值,以便能够将其反转。

Eval返回对象;不能对对象应用感叹号运算符

相反,您需要首先转换为布尔值

<asp:Label ID="LabelTitle" runat="server" 
    Text = '<%# Bind("Title") %>' 
    Visible='<%# !Convert.ToBoolean(Eval("SQL_Column")) %>'/>

Eval返回对象;不能对对象应用感叹号运算符

相反,您需要首先转换为布尔值

<asp:Label ID="LabelTitle" runat="server" 
    Text = '<%# Bind("Title") %>' 
    Visible='<%# !Convert.ToBoolean(Eval("SQL_Column")) %>'/>


我也尝试过,但它说“运算符!不能应用于object类型的操作数”,这意味着您的
SQL\u列正在计算对象,您需要将其转换为布尔值。我会更新答案。我也试过了,但上面写着“运算符!不能应用于object类型的操作数”,这意味着您的
SQL\u列
正在计算一个对象,您需要将其转换为布尔值。我会更新答案。