将样式属性设置为listview中的div

时间:2013-04-09 03:19:07

标签: c# asp.net

我有一个带有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指定背景颜色?

2 个答案:

答案 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);