C# 如何从中继器控件内的公共功能访问面板id
我需要显示我有相册的年份列表。我在div控件中使用Repeater控件。我还以C# 如何从中继器控件内的公共功能访问面板id,c#,asp.net,css,webforms,C#,Asp.net,Css,Webforms,我需要显示我有相册的年份列表。我在div控件中使用Repeater控件。我还以QueryString的形式通过了本年度。我需要以红色显示当前年份作为div的背景。我的面板始终返回null,因为我无法传递对象发送者RepeaterItemEventArgs e。如何更改此代码,以便从代码隐藏更改CssClass 我可以使用另一种方法,通过使用Literal Control&将我的年份列表显示为list。。。我可以使用它并完全控制我的css列表 请告知我如何以最佳有效的方式实现这一目标。我也会坚持以
QueryString
的形式通过了本年度。我需要以红色显示当前年份作为div的背景。我的面板始终返回null,因为我无法传递对象发送者RepeaterItemEventArgs e。如何更改此代码,以便从代码隐藏更改CssClass
我可以使用另一种方法,通过使用Literal Control
&将我的年份列表显示为list
。。。我可以使用它并完全控制我的css列表
请告知我如何以最佳有效的方式实现这一目标。我也会坚持以我正在尝试的方式去完成它,因为它可能对我的未来很有用&这对我来说非常有教育意义
http://localhost:65123/Gallery/Albums.aspx?Year=2011&PageID=38
<asp:Repeater ID="rptAlbumsYears" runat="server" >
<ItemTemplate>
<div class="AlbumPageYearListing">
<asp:HyperLink ID="hyplnkCat1" runat="server" NavigateUrl='<%# getAlbumURLbyCat(Eval("Year"))%>'>
<asp:Panel ID="pnlYear" runat="server">
<asp:Label ID="lblAlbumYear" runat="server" Text='<%# Eval("Year")%>'></asp:Label>
</asp:Panel>
</asp:HyperLink>
</div>
</ItemTemplate>
</asp:Repeater>
通过使用以下代码解决了此问题
protected void rptAlbumsYears_ItemBound(Object Sender, RepeaterItemEventArgs e)
{
try
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
int Year = Convert.ToInt32(drv["Year"]);
Repeater Repeater2 = (Repeater)e.Item.FindControl("rptAlbumsYears");
Panel pnlYear = (Panel)e.Item.FindControl("pnlYear");
int CurYear = 0;
CurYear = int.Parse(Request["Year"].ToString());
if (CurYear == Year)
{
pnlYear.CssClass = "AlbumPageYearListingCurrent";
}
}
}
catch (Exception ex)
{
throw;
}
}
protected void rptAlbumsYears_ItemBound(Object Sender, RepeaterItemEventArgs e)
{
try
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
int Year = Convert.ToInt32(drv["Year"]);
Repeater Repeater2 = (Repeater)e.Item.FindControl("rptAlbumsYears");
Panel pnlYear = (Panel)e.Item.FindControl("pnlYear");
int CurYear = 0;
CurYear = int.Parse(Request["Year"].ToString());
if (CurYear == Year)
{
pnlYear.CssClass = "AlbumPageYearListingCurrent";
}
}
}
catch (Exception ex)
{
throw;
}
}