1

我是一名新的 ASP.NET 开发人员,并尝试使用 GridView 控件作为管理每个部门员工的一种方式。此 GridView 将显示数据库中员工表中的所有员工。现在,我面临以下问题:

仅供参考,我有以下数据库设计:

Employee Table: Username, Name, JobTitle, BadgeNo, IsActive, DivisionCode
Divisions Table: SapCode, DivisionShortcut

(IsActive 就像一个标志(位数据类型)来指示员工是否在分配中)

IsActive将在 GridView 中显示为 Checkbox。如果选中,则表示真实,并且该员工存在于他的部门中。如果不勾选,则表示该员工不在该部门,应在 GridView 中隐藏。那么该怎么做呢?另外,我想隐藏在编辑模式下出现在复选框旁边的(真)文本。也该怎样做?

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 中隐藏,因为他处于非活动状态。

4

2 回答 2

0

尝试这个

<asp:CheckBox ID="isActive" runat="server" Visible='<%# Bind("IsActive")%>' Text='<%# Bind("IsActive")%>' />
于 2012-07-10T08:02:17.053 回答
0

改用这个。已删除 text 属性,因此 IsActive 将不可见。可见性由 IsActive 标志控制

<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();
于 2012-07-10T08:03:54.133 回答