From: Jaben C. <ja...@us...> - 2007-03-20 08:59:19
|
Update of /cvsroot/yafdotnet/yafsrc/controls In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv5328/yafsrc/controls Modified Files: Tag: v1_0_2_NETv2 Pager.cs Log Message: modified so it doesn't use post-backs anymore Index: Pager.cs =================================================================== RCS file: /cvsroot/yafdotnet/yafsrc/controls/Attic/Pager.cs,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.2 diff -C2 -d -r1.4.2.1 -r1.4.2.2 *** Pager.cs 1 Jul 2006 11:02:20 -0000 1.4.2.1 --- Pager.cs 20 Mar 2007 08:59:18 -0000 1.4.2.2 *************** *** 10,57 **** public class Pager : BaseControl, System.Web.UI.IPostBackEventHandler { public Pager() { ! this.Load += new EventHandler(Pager_Load); } ! private void Pager_Load(object sender,EventArgs e) { } ! protected override void Render(HtmlTextWriter output) { ! if(LinkedPager!=null) { ! Pager linkedPager = (Pager)Parent.FindControl(LinkedPager); ! if(linkedPager==null) ! throw new Exception(string.Format("Failed to link pager to '{0}'.",LinkedPager)); ! linkedPager.Render(output); return; } - - if(PageCount<2) return; ! output.WriteLine("<span>"); ! output.WriteLine("{0:N0} pages:",PageCount); int iStart = CurrentPageIndex - 6; int iEnd = CurrentPageIndex + 7; ! if(iStart<0) iStart = 0; ! if(iEnd>PageCount) iEnd = PageCount; ! if(iStart>0) ! output.WriteLine("<a href=\"{0}\">First</a> ...",Page.ClientScript.GetPostBackClientHyperlink(this,"0")); ! for(int i=iStart;i<iEnd;i++) { ! if(i==CurrentPageIndex) ! output.WriteLine("[{0}]",i+1); else output.WriteLine( "<a href=\"{0}\">{1}</a>", Page.ClientScript.GetPostBackClientHyperlink( this, i.ToString() ), i + 1 ); } ! if(iEnd<PageCount) output.WriteLine( "... <a href=\"{0}\">Last</a>", Page.ClientScript.GetPostBackClientHyperlink( this, ( PageCount - 1 ).ToString() ) ); ! output.WriteLine("</span>"); } --- 10,134 ---- public class Pager : BaseControl, System.Web.UI.IPostBackEventHandler { + private bool usePostBack = false; + public Pager() { ! this.Load += new EventHandler( Pager_Load ); } ! private void Pager_Load( object sender, EventArgs e ) { } ! protected override void Render( HtmlTextWriter output ) { ! if ( LinkedPager != null ) { ! Pager linkedPager = ( Pager ) Parent.FindControl( LinkedPager ); ! if ( linkedPager == null ) ! throw new Exception( string.Format( "Failed to link pager to '{0}'.", LinkedPager ) ); ! linkedPager.Render( output ); return; } ! if ( PageCount < 2 ) return; ! ! output.WriteLine( "<span>" ); ! output.WriteLine( "{0:N0} pages:", PageCount ); ! ! if ( UsePostBack ) OutputPostback( output ); ! else OutputLinked( output ); ! ! output.WriteLine( "</span>" ); ! } ! ! private void OutputPostback( HtmlTextWriter output ) ! { int iStart = CurrentPageIndex - 6; int iEnd = CurrentPageIndex + 7; ! if ( iStart < 0 ) iStart = 0; ! if ( iEnd > PageCount ) iEnd = PageCount; ! if ( iStart > 0 ) ! output.WriteLine( "<a href=\"{0}\">First</a> ...", Page.ClientScript.GetPostBackClientHyperlink( this, "0" ) ); ! for ( int i = iStart; i < iEnd; i++ ) { ! if ( i == CurrentPageIndex ) ! output.WriteLine( "[{0}]", i + 1 ); else output.WriteLine( "<a href=\"{0}\">{1}</a>", Page.ClientScript.GetPostBackClientHyperlink( this, i.ToString() ), i + 1 ); } ! if ( iEnd < PageCount ) output.WriteLine( "... <a href=\"{0}\">Last</a>", Page.ClientScript.GetPostBackClientHyperlink( this, ( PageCount - 1 ).ToString() ) ); + } ! private void OutputLinked( HtmlTextWriter output ) ! { ! int iStart = CurrentPageIndex - 6; ! int iEnd = CurrentPageIndex + 7; ! if ( iStart < 0 ) iStart = 0; ! if ( iEnd > PageCount ) iEnd = PageCount; ! ! if ( iStart > 0 ) ! output.WriteLine( "<a href=\"{0}\">First</a> ...", GetPageURL(0) ); ! ! for ( int i = iStart; i < iEnd; i++ ) ! { ! if ( i == CurrentPageIndex ) ! output.WriteLine( "[{0}]", i + 1 ); ! else ! output.WriteLine( "<a href=\"{0}\">{1}</a>", GetPageURL( i+1 ), i + 1 ); ! } ! ! if ( iEnd < PageCount ) ! output.WriteLine( "... <a href=\"{0}\">Last</a>", GetPageURL(PageCount - 1) ); ! } ! ! protected string GetPageURL(int page) ! { ! string url = ""; ! ! // create proper query string... ! SimpleURLParameterParser parser = new SimpleURLParameterParser( System.Web.HttpContext.Current.Request.QueryString.ToString() ); ! ! // get the current page ! Pages currentPage = (Pages) Enum.Parse(typeof(Pages),parser["g"],true); ! ! if ( parser ["m"] != null ) ! { ! // must be converted to by topic... ! parser.Parameters.Remove( "m" ); ! parser.Parameters.Add( "t", ForumPage.PageTopicID.ToString() ); ! } ! ! if ( page > 1 ) ! { ! string tmp = parser.CreateQueryString( new string [] { "g", "p" } ); ! if (tmp.Length > 0) tmp += "&"; ! ! tmp += "p={0}"; ! ! url = Forum.GetLink( currentPage, tmp, page ); ! } ! else ! { ! url = Forum.GetLink( currentPage, parser.CreateQueryString( new string [] { "g", "p" } ) ); ! } ! ! return url; ! } ! ! public bool UsePostBack ! { ! get ! { ! return usePostBack; ! } ! set ! { ! usePostBack = value; ! } } *************** *** 60,65 **** get { ! if(ViewState["Count"]!=null) ! return (int)ViewState["Count"]; else return 0; --- 137,142 ---- get { ! if ( ViewState ["Count"] != null ) ! return ( int ) ViewState ["Count"]; else return 0; *************** *** 67,71 **** set { ! ViewState["Count"] = value; } } --- 144,148 ---- set { ! ViewState ["Count"] = value; } } *************** *** 75,80 **** get { ! if(ViewState["CurrentPageIndex"]!=null) ! return (int)ViewState["CurrentPageIndex"]; else return 0; --- 152,157 ---- get { ! if ( ViewState ["CurrentPageIndex"] != null ) ! return ( int ) ViewState ["CurrentPageIndex"]; else return 0; *************** *** 82,86 **** set { ! ViewState["CurrentPageIndex"] = value; } } --- 159,163 ---- set { ! ViewState ["CurrentPageIndex"] = value; } } *************** *** 90,95 **** get { ! if(ViewState["PageSize"]!=null) ! return (int)ViewState["PageSize"]; else return 20; --- 167,172 ---- get { ! if ( ViewState ["PageSize"] != null ) ! return ( int ) ViewState ["PageSize"]; else return 20; *************** *** 97,101 **** set { ! ViewState["PageSize"] = value; } } --- 174,178 ---- set { ! ViewState ["PageSize"] = value; } } *************** *** 105,109 **** get { ! return (int)Math.Ceiling((double)Count/PageSize); } } --- 182,186 ---- get { ! return ( int ) Math.Ceiling( ( double ) Count / PageSize ); } } *************** *** 113,121 **** get { ! return (string)ViewState["LinkedPager"]; } set { ! ViewState["LinkedPager"] = value; } } --- 190,198 ---- get { ! return ( string ) ViewState ["LinkedPager"]; } set { ! ViewState ["LinkedPager"] = value; } } *************** *** 124,133 **** public event EventHandler PageChange; ! public void RaisePostBackEvent(string eventArgument) { ! if(PageChange!=null) { ! CurrentPageIndex = int.Parse(eventArgument); ! PageChange(this,new EventArgs()); } } --- 201,210 ---- public event EventHandler PageChange; ! public void RaisePostBackEvent( string eventArgument ) { ! if ( PageChange != null ) { ! CurrentPageIndex = int.Parse( eventArgument ); ! PageChange( this, new EventArgs() ); } } |