访问ASP ListView中的每个项目

时间:2013-11-20 19:53:39

标签: c# html asp.net css

我正在尝试制作奇数float:left和偶数float:right。但是,无论列表中有多少项,显然每个项目都是奇数AND元素1。如何在CSS中访问它。显然,由于每个项目都是1,因此:nth-child(odd) {float:left;}:nth-child(even){float:right;}不起作用。你怎么能访问它们?

它的结构如下:

<div class="options">
                                <asp:ListView ID="ListView1" runat="server" 
                                    DataSourceID="OptionsObjectDataSource" 
                                    EditIndex="-1" 
                                    OnPreRender="FabricsListView_PreRender">
                                    <ItemTemplate>
                                            <asp:DropDownList ID="OptionsAltDropDownList" runat="server" style="width:100%"
                                            DataSourceID="OptionsObjectDataSource" 
                                            DataTextField="description" 
                                            DataValueField="id"
                                            AppendDataBoundItems="true"
                                            OnDataBound="OptionsAltDropDownList_DataBound" >
                                            <asp:ListItem Value="">- Select Alt Option -</asp:ListItem>
                                        </asp:DropDownList>
                                        <asp:ObjectDataSource ID="OptionsObjectDataSource" 
                                                runat="server" 
                                                SelectMethod="GetOptionList" 
                                                TypeName="Data.ProductList" > 
                                        </asp:ObjectDataSource>
                                    </ItemTemplate>
                                </asp:ListView>
                                <asp:ObjectDataSource ID="OtherObjectDataSource" runat="server"
                                                            SelectMethod="GetByProduct" 
                                                            TypeName="Data.RequirementList" 
                                                            OldValuesParameterFormatString="original_{0}">
                                    <SelectParameters>
                                        <asp:ControlParameter ControlID="OptionHiddenField" Name="id" PropertyName="Value" Type="String" />
                                    </SelectParameters>
                                </asp:ObjectDataSource>
                            </div>

3 个答案:

答案 0 :(得分:0)

您可以使用AlternatingItemTemplate并相应调整CSS样式吗?

Listview AlternatingItemTemplate

答案 1 :(得分:0)

我不确定你在哪里查看索引。但你可以使用这样的东西:

<some_element style="<%#RenderItemStyle(Container.ItemIndex)%>"

其中“some_element”是ItemTemplate中的任何元素。然后,您将在类后面的代码中创建函数RenderItemStyle:

protected string RenderItemStyle(int index)
{
    if ((index % 2) == 0)
       return style_for_even_row;
    else
       return style_for_odd_row;
}

在运行时,将为每一行调用RenderItemStyle。然后,您可以根据“索引”参数在函数内执行任何操作。

答案 2 :(得分:0)

这就是我div的方式。他们不在适当的地方。我会详细说明,但我没有在我的问题中在代码中发布那篇文章。基本上,ListView本身必须位于div(以包含整个列表),并且div也必须位于div内,以给它一些界限。此外,<ItemTemplate>内的div必须是{{1}}。这是列表中的每个项目。这就是现在可以正确应用子样式的div。