Mega Code Archive

 
Categories / ASP.Net Tutorial / Custom Controls
 

Contains the custom pager control

using System; using System.Web.UI; using System.Web.UI.WebControls; namespace myControls {     public class Pager : WebControl, IPostBackEventHandler     {         string _controlToPage;         public string ControlToPage         {             get { return _controlToPage; }             set { _controlToPage = value; }         }         protected override void RenderContents(HtmlTextWriter writer)         {             GridView grid = GetControlToPage();             for (int i = 0; i < grid.PageCount; i++)             {                 string eRef = Page.ClientScript.GetPostBackClientHyperlink(this, i.ToString());                 writer.Write("[");                 if (i == grid.PageIndex)                    writer.AddStyleAttribute(HtmlTextWriterStyle.FontWeight, "bold");                 writer.AddAttribute(HtmlTextWriterAttribute.Href, eRef);                 writer.RenderBeginTag(HtmlTextWriterTag.A);                 writer.Write("{0}", i + 1);                 writer.RenderEndTag();                 writer.Write("] ");             }         }         private GridView GetControlToPage()         {             if (String.IsNullOrEmpty(_controlToPage))                 throw new Exception("Must set ControlToPage property");             return (GridView)Page.FindControl(_controlToPage);         }         public void RaisePostBackEvent(string eventArgument)         {             GridView grid = GetControlToPage();             grid.PageIndex = Int32.Parse(eventArgument);         }     } } File: Default.aspx <%@ Page Language="C#" %> <%@ Register TagPrefix="custom" Namespace="myControls" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">     <title>Show CustomPager</title> </head> <body>     <form id="form1" runat="server">     <div>     <asp:GridView         id="GridView1"         DataSourceID="srcProducts"         AllowPaging="true"         PageSize="3"         PagerSettings-Visible="false"         Runat="server" />     <custom:Pager         id="Pager1"         ControlToPage="GridView1"         Runat="server" />     <asp:SqlDataSource         id="srcProducts"         ConnectionString="Data Source=.\SQLExpress;Integrated Security=True;             AttachDbFileName=|DataDirectory|MyDatabase.mdf;User Instance=True"         SelectCommand="SELECT Id,Title,Director FROM Products"         Runat="server" />     </div>     </form> </body> </html>