У меня есть представление списка - (*
name: ListViewName
), с некоторыми метками внутри, идентификатор (имя) метки:
Biglbl
.. большой, потому что он включает в себя некоторые ссылки и названия.
есть еще одна метка в имени:
lblCatName
, которая возвращает имя категории.
Я хочу проверить каждыйэлемент списка: что такое имя (скажем, «ТЕСТ») и скрытие или отображение некоторых меток или изменение HyperLink navigateUrl.
aspx:
<asp:ListView ID="ListViewName" OnItemDataBound="ContactsListView_ItemDataBound" runat="server">
<ItemTemplate>
<asp:Label Visible="true" ID="lblCName" Text='<%# Eval("CatName") %>' runat="server" > </asp:Label>
<asp:Label runat="server" id="lblCName" Visible="false" />
<div style=".....">
...............
<asp:HyperLink ID="HyperLink4" runat="server"
NavigateUrl='<%# "bla.aspx?Id=" + Eval("id").ToString() %>'>
</asp:HyperLink>
<asp:HyperLink ID="HyperLink7" runat="server"
NavigateUrl='<%# "bla.aspx?Id=" + Eval("CatId").ToString() %>'> <img src="images/btblue.png" /> </asp:HyperLink>
</asp:Label>
</div>
</ItemTemplate>
</asp:ListView>
У меня есть код C #:
protected void ContactsListView_ItemDataBound(object sender,ListViewItemEventArgs e)
{
foreach (ListViewItem item in ListViewName.Items)
{
Biglbl = (Label)e.Item.FindControl("Biglbl");
Label lblCName = (Label)e.Item.FindControl("lblCatName");
HyperLink Link = (HyperLink)e.Item.FindControl("HyperLink4");
HyperLink Link2 = (HyperLink)e.Item.FindControl("HyperLink7");
if (lblCatName.ToString() == "TEST")
{
Biglbl.Visible = true;
Link.NavigateUrl = "blabla";
Link2.NavigateUrl = "blabla";
}
else
{
Biglbl.Visible = false;
Link.NavigateUrl = "aaaa";
Link2.NavigateUrl = "aaaa";
}
}
}
Я не знаю, как использовать здесь foreache для своих нужд.
Что мне нужно сделать (я думаю, что if и findcontrol's в порядке ... мне нужносделай что поменять в foreac.