ListView
содержит список предметов. ItemTemplate
описывает макет каждого этих элементов. Таким образом, Label
элементы управления внутри шаблона существуют для каждого элемента списка.
Вот рабочий пример:
ASPX Page
<head runat="server">
<title></title>
<style>
.color2 {
color: #d40000;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ListView ID="lv_post" runat="server" ItemType="String">
<ItemTemplate>
<asp:Label ID="lbl_estrela" runat="server" Text="<%# Item %>"></asp:Label>
<br />
</ItemTemplate>
</asp:ListView>
</div>
</form>
</body>
Код позади
public string[] data = { "Data 1", "Data 2", "Data 3", "Data 4" };
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lv_post.DataSource = data;
lv_post.DataBind();
var lbl_estrela1 = lv_post.Items[1].FindControl("lbl_estrela") as Label;
lbl_estrela1.CssClass = "color2";
var lbl_estrela3 = lv_post.Items[3].FindControl("lbl_estrela") as Label;
lbl_estrela3.CssClass = "color2";
}
}
В приведенном выше примере стиль css для второй и четвертой меток установлен на color2
. Обратите внимание, использование коллекции Items
.
Дополнительно
Чтобы лучше понять, взгляните на источник страницы, сгенерированный при загрузке страницы.
<div>
<span id="lv_post_lbl_estrela_0">Data 1</span>
<br />
<span id="lv_post_lbl_estrela_1" class="color2">Data 2</span>
<br />
<span id="lv_post_lbl_estrela_2">Data 3</span>
<br />
<span id="lv_post_lbl_estrela_3" class="color2">Data 4</span>
<br />
</div>