我是一名新的ASP.NET开发人员,并尝试使用GridView控件作为管理每个部门员工的方法。此GridView将显示数据库中employee表中的所有员工。现在,我面临以下问题:
仅供参考,我有以下数据库设计:
Employee Table: Username, Name, JobTitle, BadgeNo, IsActive, DivisionCode
Divisions Table: SapCode, DivisionShortcut
(IsActive就像一个标志(位数据类型)来指示员工是否在某项作业中)
IsActive 将作为复选框显示在GridView中。如果选中它,则表示为真,员工存在于其部门中。如果未选中,则表示该员工不在该部门,并且应该从GridView中隐藏。 那怎么办呢?此外,我想隐藏(编辑模式)复选框旁边出现的(True)文本。怎么做呢?
ASP.NET代码:
<asp:TemplateField HeaderText="Is Active?">
<ItemTemplate>
<%# Eval("IsActive")%>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="isActive" runat="server" Text='<%# Bind("IsActive")%>' />
</EditItemTemplate>
</asp:TemplateField>
更新
我希望员工的所有信息都隐藏在GridView中,因为他处于非活动状态。
答案 0 :(得分:0)
试试这个
<asp:CheckBox ID="isActive" runat="server" Visible='<%# Bind("IsActive")%>' Text='<%# Bind("IsActive")%>' />
答案 1 :(得分:0)
请改用它。 已删除text属性,因此IsActive不可见。 Visiblity由IsActive Flag控制
<asp:TemplateField HeaderText="Is Active?">
<ItemTemplate>
<%# Eval("IsActive")%>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="isActive" runat="server" Checked='<%# Eval("IsActive").ToString().Equals("True") %> />
</EditItemTemplate>
</asp:TemplateField>
修改强>
如果要为非活动用户隐藏整行,最好在执行databind()操作之前从数据集中过滤非活动用户。你甚至可以在数据库端过滤它,但由于我不知道整个场景,我建议你这样做。
DataSet filter = ds.Tables[0].Select("IsActive == 'True'");
gridUser.DataSource = filter;
gridUser.DataBind();