在转发器分页中突出显示当前页面 [英] Highlight the current page in repeater paging

查看:101
本文介绍了在转发器分页中突出显示当前页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在转发器中应用分页,它工作正常,我想突出显示用户选择的当前页面。我有两个转发器用于结果,第二个用于分页功能。

I am applying paging in repeater and it is working fine, i want to highlight the current page selected by user. I have two repeater one for results and second for paging functionality.

<asp:Repeater ID="rptPaging" runat="server" onitemcommand="rptPaging_ItemCommand">
<ItemTemplate>
<asp:LinkButton ID="btnPage" style="padding:8px; margin:2px; background:#911216; border:solid 1px black; font:8pt tahoma;" CommandName="Page" CommandArgument="<%# Container.DataItem %>"

runat="server" ForeColor="White" Font-Bold="True"><%# Container.DataItem %>
</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>




protected void rptPaging_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        PageNumber = Convert.ToInt32(e.CommandArgument) - 1;
        BindRepeaterData();
    }

public int PageNumber
    {
        get
        {
            if (ViewState["PageNumber"] != null)
                return Convert.ToInt32(ViewState["PageNumber"]);
            else
                return 0;
        }
        set
        {
            ViewState["PageNumber"] = value;
        }
    }

推荐答案

.CS

.CS
protected void RepeaterItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            RepeaterItem item = (RepeaterItem)e.Item;
            SiteMapNode node = (SiteMapNode)item.DataItem;
            HyperLink hl = (HyperLink)e.Item.FindControl("HyperLink1");
            hl.ImageUrl = node["ImageUrl"];
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                (e.Item.FindControl("HyperLink1") as HyperLink).ForeColor = System.Drawing.Color.Red;
            }



.APSX


.APSX

<asp:repeater id="LevelOne" datasourceid="SiteMapDataSource1" onitemdatabound="RepeaterItemDataBound" enableviewstate="false" runat="server" xmlns:asp="#unknown">
                                    <itemtemplate>
                                        <li id="l1" runat="server"><asp:hyperlink id="HyperLink1" runat="server" navigateurl="<%#Eval("url") %>" text="<%#Eval("Title") %>" imageurl="<%#Eval("[ImageUrl]")%>" width="15" height="15"></asp:hyperlink>
                                            <ul>
                                                <asp:repeater id="LevelTwo" datasource="<%#((SiteMapNode) Container.DataItem).ChildNodes %>" onitemdatabound="RepeaterItemDataBound" runat="server">
                                                    <itemtemplate>
                                                        <li><asp:hyperlink id="HyperLink2" runat="server" navigateurl="<%#Eval("url") %>" text="<%#Eval("Title") %>" imageurl="<%#Eval("[ImageUrl]")%>" width="15" height="15" forecolor="Gray"></asp:hyperlink></li>
                                                        
                                                    </itemtemplate>
                                                </asp:repeater>
                                            </ul>
                                        </li>
                                    </itemtemplate>
                                </asp:repeater>


在绑定转发器数据中:

In bind repeater data:
for (int i = 0; i < pgitems.PageCount; i++)
                if (i == PageNumber)
                {

                    pages.Add("<strong>" + (i + 1).ToString() + "</strong>");
                }
                else
                {
                    pages.Add((i + 1).ToString());
                }



添加功能:

protected bool CurrentPageHighlight(int currPage)

{

返回currPage == PageNumber? true:false;

}


add fuction:
protected bool CurrentPageHighlight(int currPage)
{
return currPage == PageNumber ? true : false;
}


这篇关于在转发器分页中突出显示当前页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆