0

如何隐藏 Asp Repeater 中的特定列?在这种情况下我想隐藏 Powner !

<ItemTemplate>
    <tr>
        <td>
            <%#Eval("Priority") %>
        </td>
        <td>
            <%#Eval("ProjectName") %>
        </td>
        <td>
            <asp:Label ID="Label1" runat="server" Text='<%# Eval("POwner") %>'></asp:Label>
    </tr>
</ItemTemplate>

在后面的代码中添加它会产生错误:s

public void Repeater1_ItemDatabound(Object Sender, RepeaterItemEventArgs e)
{
    Repeater a =(Repeater)e.Item.FindControl("Label1");
    a.Visible = false;
}
4

3 回答 3

0

Label1Label控件而不是控件Repeater,这就是您收到错误的原因

您还需要添加一个if条件,以便您只获得Label1项目而不是页眉或页脚。

试试这个

if (e.Item.ItemType == ListItemType.Item || 
    e.Item.ItemType == ListItemType.AlternatingItem)
{
    Label label = (Label)e.Item.FindControl("Label1");
    label.Visible = false;
}
于 2012-07-02T15:04:01.173 回答
0

您应该将 Label1 转换为 Label 而不是转发器试试这个:

Label a =(Label)e.Item.FindControl("Label1");
a.Visible = false;
于 2012-07-02T15:04:47.287 回答
0

我想这是不可能的。但我可能弄错了

也许您可以尝试在您的项目模板中使用以下内容:

<tr>
<td runat="server" visible='<%# expression %'>
......
</td>
<td>
....
</tr>

或使用 ListView 控件代替 Repeater

于 2012-07-02T15:07:57.293 回答