根据条件更改listview行颜色

时间:2012-03-27 15:17:29

标签: c# asp.net vb.net

我正在开发一个关于撰写报告的网站......用户可以对报告发表评论(哼!!好像是一件新东西;))..回到问题...我正在做的是用{{显示评论1}}。

问题我希望当有人在自己的帖子listview上发表评论时,以便明确显示帖子所有者已发表评论......我已在{{1博客..非常感谢。谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用数据键和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;
        }
    }        
}

答案 1 :(得分:0)

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

如果它确实像

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

我认为这样的事情无法检查atm