如何让这个复选框在GridView中运行?

时间:2012-07-10 07:57:54

标签: c# asp.net gridview sql-server-2008-r2

我是一名新的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中,因为他处于非活动状态。

2 个答案:

答案 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();