Я пытаюсь сделать нечетные числа 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>
Не могли бы вы использовать AlternatingItemTemplate и соответственно настроить свои стили CSS?
Это был мой div
. Они не были в нужном месте. Я бы уточнил, но я не опубликовал эту статью в коде в моем вопросе. В принципе, ListView сам должен быть в div
(чтобы охватить весь список), и что div
также должен быть внутри div
, чтобы дать ему некоторые границы. Кроме того, сразу внутри <ItemTemplate>
должен быть div
. Это для каждого элемента в списке. Это div, для которого теперь можно правильно применять дочерние стили.
Я не уверен, где вы проверяете индекс. Но вы можете использовать что-то вроде этого:
<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".