使用ItemDataBound我只获得每隔一行。为什么?

时间:2012-04-16 20:03:38

标签: asp.net itemdatabound

我使用以下代码在绑定后对表中的每一行进行操作:

    protected void dtlImages_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item)
        {
            LinkButton button = (LinkButton)e.Item.FindControl("lbDeleteImage");
            button.Visible = false;
        }
    }

我在表格中的每个图像旁边都有一个按钮,允许我删除图像(行)。似乎工作得很好,但实际发生的是它使每个其他行的项目(删除按钮)不可见。是什么导致这种情况发生?很难在Google中找到要搜索的正确字词。 :)

如果你看到我的表,它看起来就像是一个很好的带有描述的图像列表,图像和每个其他行在图像旁边都有一个删除按钮。在这个简单的例子中(为了清楚起见,我省略了条件),我认为它们应该全部消失。

有什么建议吗?

1 个答案:

答案 0 :(得分:6)

我认为您很可能也需要检查ListItemType.AlternatingItem,如下所示:

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

特别是考虑到它只能捕捉到其他所有行。