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

Dou*_*ram 4 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;
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

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

有什么建议?

Jos*_*ell 6

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

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
Run Code Online (Sandbox Code Playgroud)

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