В моей .aspx странице у меня DataList:Как найти одну метку в DataList, который установлен Истина
<asp:DataList ID="DataList1" runat="server" DataKeyField="ProductSID"
DataSourceID="SqlDataSource1" onitemcreated="DataList1_ItemCreated"
RepeatColumns="3" RepeatDirection="Horizontal" Width="1112px">
<ItemTemplate>
ProductSID:
<asp:Label ID="ProductSIDLabel" runat="server" Text='<%# Eval("ProductSID") %>' />
<br />
ProductSKU:
<asp:Label ID="ProductSKULabel" runat="server" Text='<%# Eval("ProductSKU") %>' />
<br />
ProductImage1:
<asp:Label ID="ProductImage1Label" runat="server" Text='<%# Eval("ProductImage1") %>' />
<br />
ShowLive:
<asp:Label ID="ShowLiveLabel" runat="server" Text='<%# Eval("ShowLive") %>' />
<br />
CollectionTypeID:
<asp:Label ID="CollectionTypeIDLabel" runat="server" Text='<%# Eval("CollectionTypeID") %>' />
<br />
CollectionHomePage:
<asp:Label ID="CollectionHomePageLabel" runat="server" Text='<%# Eval("CollectionHomePage") %>' />
<br />
<br />
</ItemTemplate>
</asp:DataList>
И в моем коде за помощью события ItemCreated, чтобы найти и установить label.backcolor имущество. (Примечание: Я использую рекурсивную FindControl класс)
protected void DataList1_ItemCreated(object sender, DataListItemEventArgs e)
{
foreach (DataListItem item in DataList1.Items)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label itemLabel = form1.FindControlR("CollectionHomePageLabel") as Label;
if (itemLabel !=null || itemLabel.Text == "True")
{
itemLabel.BackColor = System.Drawing.Color.Yellow;
}
}
Когда я запускаю страницу, то itemLabel найден, и цвет показывает. Но он устанавливает цвет itemLabel в первый экземпляр itemLabel, найденный в DataList. Из всех itemLabels в DataList только один будет иметь текст = True - и это должен быть ярлык, собирающий обратную цветную букву. Также: ItemLabel собирает столбец в БД под названием «CollectionHomePage», который является типом данных True/False bit. Мне нужно пропустить что-то простое ... Спасибо за ваши идеи.
Эй Claudio, это все еще не работает правильно , Когда я попробовал ваше предложение, страница загрузилась без ошибок, но ярлык с текстом, установленным в True, не отображал обратную цветную. Спасибо. – Doug
@Doug. Попробуйте выполнить этот же код при событии OnItemDataBound –
ДА! Теперь он работает. Должен был использовать OnItemDataBound в первую очередь. Спасибо Клаудио. – Doug