我有这个疑问:使用如果Linq中的语句SQL
Dim Query = From E In db.Employee Select E
现在Employee表有一个名为“isActive”一个布尔字段内。
如果IsActive值等于为True我想要的结果表明,IsActive等于“活动”与同为IsActive =假绑定到GridView”
我有这个疑问:使用如果Linq中的语句SQL
Dim Query = From E In db.Employee Select E
现在Employee表有一个名为“isActive”一个布尔字段内。
如果IsActive值等于为True我想要的结果表明,IsActive等于“活动”与同为IsActive =假绑定到GridView”
如果我正确理解你的问题时显示无效的,要在IsActive列,以显示你的GridView“激活”或“无效”,而不是“真”或“假”?
如果是的话,我可以看到两种不同的方法。
变1:
你可以选择一个新的匿名类型并绑定到GridView(原谅我,我不知道VB语法,但这是怎么会在C#来完成):
Dim Query = From E In db.Employee Select New With _
{ _
.Id = E.Id, _
.Name = E.Name, _
.IsActive = E.IsActive ? "Active" : "Inactive" _
' ... all employee fields except IsActive, '
}
然后你只是数据绑定照常。
变2:
你让gridview的是一个有点小聪明不仅仅是绑定到IsActive属性。即,gridview将执行IsActive ? "Active" : "Inactive"
部分。
例如,你可能有这样的事情:
<asp:BoundField DataField="IsActive" HeaderText="IsActive" />
可以将此更改为模板字段来代替:
<asp:TemplateField HeaderText="IsActive">
<ItemTemplate>
<%# GetIsActiveText((bool)Eval("IsActive")) %>
</ItemTemplate>
</asp:TemplateField>
在代码隐藏文件,添加一个方法GetIsActiveText ()根据布尔真/假值返回正确的字符串。
我想我明白你想达到的目标。你需要的东西是这样的:
Dim Query = From e In db.Employee
select
new
{
ID = e.ID,
ActiveStr = e.IsActive?"Active":"Inactive"
};
请与任何其他领域,你可能希望在查询中,用逗号分隔,显示更换“ID”字段。
ActiveStr = e.IsActive?"Active":"Inactive"
忽略所有人推荐的条件? trueBit:falseBit语法,因为它只是C#。对于VB,使用三元如果(不是IIF):
Dim query = From e In db.Employee
Select e.ID,
ActiveStr = If(e.IsActive,"Active","Inactive")
我明显错过了你的问题的观点。您的评论是“如果IsActive值等于True,我希望结果显示IsActive等于”Active“,并且相同的IsActive = false在绑定到gridview时显示InActive”。你能否将这些信息添加到你的问题中以使其更清楚。 – ChrisF