根据条件更改列表视图行的颜色

本文关键字:视图 颜色 列表 条件 | 更新日期: 2023-09-27 18:29:05

我正在开发一个写报告的网站。。。用户可以对报告进行评论(哈!!就像一个新东西一样;)。。回到问题上来。。我所做的是使用CCD_ 1来显示评论。

问题:我希望当有人在自己的帖子the row should be of different color上发表评论时,帖子所有者已经发表了评论。。。我在Scott Guthrie's博客上看到过这个。。任何帮助都将不胜感激。谢谢

根据条件更改列表视图行的颜色

您可以使用数据键和ItemDataBound事件来执行此操作。

<asp:ListView ID="ListView1" runat="server" DataKeyNames="UserID" OnItemDataBound="ListView1_ItemDataBound" ... />

除了以上内容,您还需要将每个项目包装在服务器控件中,以便调整背景颜色:

<ItemTemplate>
    <asp:Panel ID="Panel1" runat="server">
        <!-- the item content here -->
    </asp:Panel>
</ItemTemplate>

下面是一些示例代码:

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    var dataItem = e.Item as ListViewDataItem;
    if (dataItem != null)
    {                        
        var innerPanel = dataItem.FindControl("Panel1") as Panel;
        if (innerPanel!= null)
        {
            var userID = (int)ListView1.DataKeys[dataItem.DisplayIndex]["UserID"];
            if (userID == base.User.UserID)
                innerPanel.BackColor = Color.PeachPuff;
        }
    }        
}

onitemdatabound检查评论员id是否与作者id 匹配

如果它真的做了类似的事情

if(databinder.eval(e.item.dataitem, "commentatorid") == _writerId)
{
    e.item.attributes.add("style", "background-color: red");
}

我认为这是无法检查atm 的情况