我需要显示我拥有相册的年份列表。我为此使用Repeater控件,并在div控件中使用包装器年份。我也将当前年份作为QueryString
. 我需要以红色显示当前年份作为 div 的背景。我的面板总是返回 null,因为我无法通过Object Sender, RepeaterItemEventArgs e
. 如何更改此代码,以便我可以从后面的代码更改 CssClass。
我可以使用另一种方法,方法是使用Literal Control
& 将我的年份列表显示为列表<ul>
... 我可以使用它并完全控制我的列表 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>
.CS 代码
protected String getAlbumURLbyCat(object Year)
{
string url;
int PageID = Helper.GetPageIDbyName("Albums.aspx", "en-us");
url = "~/Albums.aspx?Year=" + Year + "&PageID=" + PageID;
try
{
int CurYear = 0;
CurYear = int.Parse(Request["Year"].ToString());
int iYear = int.Parse(Year.ToString());
//Image imgArticleList = (Image)e.Item.FindControl("imgArticleList") as Image;
Panel pnlYear = (Panel)FindControl("pnlYear");
// Panel pnlYear = (Panel)
if (CurYear == iYear)
{
pnlYear.CssClass = "AlbumPageYearListingCurrent";
}
}
catch (Exception ex)
{
}