C# 如何从中继器控件内的公共功能访问面板id

C# 如何从中继器控件内的公共功能访问面板id,c#,asp.net,css,webforms,C#,Asp.net,Css,Webforms,我需要显示我有相册的年份列表。我在div控件中使用Repeater控件。我还以QueryString的形式通过了本年度。我需要以红色显示当前年份作为div的背景。我的面板始终返回null,因为我无法传递对象发送者RepeaterItemEventArgs e。如何更改此代码,以便从代码隐藏更改CssClass 我可以使用另一种方法,通过使用Literal Control&将我的年份列表显示为list。。。我可以使用它并完全控制我的css列表 请告知我如何以最佳有效的方式实现这一目标。我也会坚持以

我需要显示我有相册的年份列表。我在div控件中使用Repeater控件。我还以
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;
    }
}