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

無理だと思います。しかし、私は間違っている可能性があります

たぶん、アイテムテンプレート内で次のように使用することができます:

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

または代わりに ListView コントロールを使用します Repeater

于 2012-07-02T15:07:57.293 に答える
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 に答える