简体   繁体   English

如何从Repeater Control中的公共功能访问面板ID

[英]How to access Panel id from public function inside Repeater Control

I need to show list of years for which i have Photo albums. 我需要显示我拥有相册的年份列表。 I use Repeater control for this and wrapper year inside a div control. 我为此使用了Repeater控件,并在div控件中使用了包装年份。 I also pass current Year as QueryString . 我还将当前Year传递为QueryString I need to show the current year in red as a background for div. 我需要用红色显示当前年份作为div的背景。 my panel always return null as i am not able to pass the Object Sender, RepeaterItemEventArgs e . 我的面板始终返回null,因为我无法传递Object Sender, RepeaterItemEventArgs e How can i alter this code so that i can change the CssClass from code behind. 我如何更改此代码,以便可以从后面的代码中更改CssClass。

I can use another approach for same by using Literal Control & show my list of Years as List <ul> ... which i can use & have full control over my list css. 通过使用Literal Control ,我可以使用另一种方法,并将我的年份列表显示为列表<ul> ...,可以使用它并完全控制列表CSS。

Please advice how i can achieve this in best & effective way. 请提出建议,我如何才能以最佳和有效的方式实现这一目标。 I am also keep to get in done in the way i am trying to do it as it might be useful in future & very education for me 我也总是以尝试的方式完成工作,因为这可能对将来和我的教育很有用

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 Code .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)
    {
    }

RESOLVED ISSUE by using following code 通过使用以下代码解决问题

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;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用ItemTemplate(中继器)内部的自定义控件,如何访问中继器项目中的值? - With a custom control that's inside of an ItemTemplate (Repeater), how can I access values from the repeater item? 在更新面板内的转发器内的用户控件内创建的JQuery函数不起作用 - JQuery function created inside a user control inside a repeater inside an update panel is not working 如何从Repeater控件中调用Javascript函数 - How to call Javascript function from Repeater control 如何在转发器控件中获取元素ID - How to get element ID's inside repeater control 如何在Repeater控制服务器端访问隐藏字段值? - How to access Hidden fields value inside Repeater control server side? 如何在转发器控件内的javascript函数上传递隐藏字段值 - How to pass a hidden field value on javascript function inside repeater control 如何在转发器中访问asp.net复选框控件以获取更新面板触发器? - how to access asp.net checkbox control in repeater for update panel trigger? 如何使用Repeater从ItemCommand事件访问ItemTemplate控件 - How to access ItemTemplate control from ItemCommand event using Repeater 在嵌套中继器中使用时,子中继器控件无法隐藏或显示面板控件 - Child Repeater control fails to hide or show Panel Control when used inside nested repeater 如何访问直放站内的控件? - How to access controls inside repeater?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM