如何以编程方式更改寻呼机或转发器后面的颜色选择页码?

时间:2013-09-02 02:06:13

标签: c# asp.net repeater paging

我是一个试图建立电子商务网站的新手。我用来显示页码的寻呼机控件使用了一个转发器,看起来很无聊。任何人都可以告诉我如何以编程方式更改用户选择的页码的背景颜色?或者以编程方式将其连接到执行此操作的CSS样式表单块。示例:将数字后面的颜色更改为橙​​色方块,周围有黑色边框。谢谢。

当前代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Pager.ascx.cs" Inherits="UserControls_Pager" %> 
<p> Page <asp:Label ID="currentPageLabel" runat="server" /> 
    of <asp:Label ID="howManyPagesLabel" runat="server" /> | 
   <asp:HyperLink ID="previousLink" Runat="server">Previous</asp:HyperLink> 
   <asp:Repeater ID="pagesRepeater" runat="server"> 
      <ItemTemplate> 
         <asp:HyperLink ID="hyperlink" runat="server" Text='<%# Eval("Page") %>' 
           NavigateUrl='<%# Eval("Url") %>' /> 
      </ItemTemplate>
   </asp:Repeater> 
   <asp:HyperLink ID="nextLink" Runat="server">Next</asp:HyperLink> 
</p>

2 个答案:

答案 0 :(得分:1)

UserControl ASPX:

 <p> Page <asp:Label ID="currentPageLabel" runat="server" /> of   
 <asp:Label ID="howManyPagesLabel" runat="server" /> | 
 <asp:HyperLink ID="previousLink" Runat="server">Previous</asp:HyperLink> 
 <asp:Repeater ID="pagesRepeater" runat="server" 
        onitemdatabound="pagesRepeater_ItemDataBound"> <ItemTemplate>   
 <asp:HyperLink ID="hyperlink" runat="server" Text='<%# Eval("Page") %>'   
    NavigateUrl='<%# Eval("Url") %>' /> </ItemTemplate> 
 </asp:Repeater>  
 <asp:HyperLink ID="nextLink" Runat="server">Next</asp:HyperLink> </p>

后面的UserControl代码:

public class p
{
    public string Page { get; set; }
    public string Url { get; set; }
    public p(string url, string page)
    {
        Page = page;
        Url = url;
    }
}
protected void Page_Load(object sender, EventArgs e)
{
    List<p> arr = new List<p>();
    arr.Add(new p("a.aspx", "a"));
    arr.Add(new p("b.aspx", "b"));
    pagesRepeater.DataSource = arr;
    pagesRepeater.DataBind();
}

protected void pagesRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    HyperLink lnk = (HyperLink)e.Item.FindControl("hyperlink");
    string[] URL = Request.Url.Segments;
    string currentUrl = URL[URL.Length - 1];
    if (lnk != null)
    {
        string lnkUrl=lnk.NavigateUrl;
        if (lnkUrl == currentUrl)
        {
            lnk.BackColor = Color.Orange;
            lnk.Style.Add("border", "1px solid #000000");
            lnk.Style.Add("background-color", "orange");
            lnk.Style.Add("text-decoration", "none");
        }
    }
}

答案 1 :(得分:0)

您可以通过客户端Jquery执行此操作,例如,如果您想要着色的控件具有ID“MyControl”

                          $("#MyControl").css( "color", "red" ),  

您无需从代码后面更改它。

在您的页面准备好的文档中调用此代码,如下所示:

                          <script>
                            $(document).ready(function() {
                            $("#MyControl").css( "color", "red" )
                                                          });
                          </script>

请记住,最好将脚本代码放在页面末尾,因为它可以让您的页面运行得更快。