根据条件更改列表视图行的颜色
本文关键字:视图 颜色 列表 条件 | 更新日期: 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 的情况