我有一个带有listview的页面,它有一个div。根据数据库信息,此div具有不同的背景颜色:
<asp:ListView ID="lvwPostArt" runat="server" DataSourceID="odsAdvanced" GroupItemCount="3" OnItemDataBound="lvwPostArt_ItemDataBound">
<EmptyDataTemplate>
<p>No matches.</p>
</EmptyDataTemplate>
<LayoutTemplate>
<table style="border: none">
<asp:PlaceHolder ID="groupPlaceholder" runat="server"></asp:PlaceHolder>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</tr>
</GroupTemplate>
<ItemTemplate>
<td>
<!--HEEEEEEEERE'S THE DIV!!! -->
<div id="divContainer" class="icondetail" runat="server" style='background-color:<%# Eval("colorFondo") %>'><!-- HERE GOES CUSTOM COLOR -->
<div class="innerBox">
<asp:Image runat="server" ID="img_Post" ImageUrl='<%# Eval("ImageThumbnail") %>' CssClass="StaticImage" />
</div>
</div>
</td>
</ItemTemplate>
</asp:ListView>
然而,这并没有收到颜色。 objectDataSource具有以下DataObjectTypeName:
public class myImage
{
string colorFondo { get; set; }
string ImageThumbnail { get; set; }
}
这是我到目前为止所尝试的内容:
尝试#1:直接在div样式上设置数据绑定。
<div id="divContainer" class="icondetail" runat="server" style='background-color:<%# Eval("colorFondo") %>'>
尝试#2:使用属性ItemDataBound
设置代码背后的信息protected void lvwPostArt_ItemDataBound(object sender, ListViewItemEventArgs e)
{
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
if (e.Item.ItemType == ListViewItemType.DataItem)
{
HtmlGenericControl divCont = (HtmlGenericControl)e.Item.FindControl("divContainer");
divCont.Style.Add("background-color", "#ffffff"); //How can I get the info from the DataClass to assign it to the property????
}
}
我的问题是,如何为此div指定背景颜色?
答案 0 :(得分:0)
你差不多......第二次尝试时,只需使用这个
divCont.Attributes.Add("style", "background-color:#ffffff");
答案 1 :(得分:0)
要么像这样
DataRowView rowView = (DataRowView)dataItem.DataItem;
divCont.Style.Add("background-color", rowView["colorFondo"].ToString());
或者像这样
var myImg = e.Item.DataItem as myImage;
divCont.Style.Add("background-color", myImg.colorFondo);