Доступ к каждому элементу в ASP ListView

0

Я пытаюсь сделать нечетные числа float:left и even float:right. Однако, очевидно, каждый элемент является нечетным элементом И 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

Не могли бы вы использовать AlternatingItemTemplate и соответственно настроить свои стили CSS?

Listview AlternatingItemTemplate

0

Это был мой div. Они не были в нужном месте. Я бы уточнил, но я не опубликовал эту статью в коде в моем вопросе. В принципе, ListView сам должен быть в div (чтобы охватить весь список), и что div также должен быть внутри div, чтобы дать ему некоторые границы. Кроме того, сразу внутри <ItemTemplate> должен быть div. Это для каждого элемента в списке. Это div, для которого теперь можно правильно применять дочерние стили.

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 будет вызываться для каждой строки. Затем вы можете делать все, что хотите, внутри своей функции на основе аргумента "index".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню