using System;
using System.Data;
using yaf.pages;
namespace yaf.controls
{
///
/// Summary description for ForumJump.
///
public class ForumJump : BaseControl, System.Web.UI.IPostBackDataHandler
{
private void Page_Load( object sender, System.EventArgs e )
{
if ( !Page.IsPostBack )
ForumID = ForumPage.PageForumID;
}
override protected void OnInit( EventArgs e )
{
this.Load += new System.EventHandler( this.Page_Load );
base.OnInit( e );
}
private int ForumID
{
get
{
return ( int ) ViewState ["ForumID"];
}
set
{
ViewState ["ForumID"] = value;
}
}
#region IPostBackDataHandler
public virtual bool LoadPostData( string postDataKey, System.Collections.Specialized.NameValueCollection postCollection )
{
int nForumID;
try
{
nForumID = int.Parse( postCollection [postDataKey] );
if ( nForumID == ForumID )
return false;
}
catch ( Exception )
{
return false;
}
ForumID = nForumID;
return true;
}
public virtual void RaisePostDataChangedEvent()
{
if ( ForumID > 0 )
Forum.Redirect( Pages.topics, "f={0}", ForumID );
#if TODO
else
Forum.Redirect(Pages.forum,"c={0}",-ForumID);
#endif
}
#endregion
protected override void Render( System.Web.UI.HtmlTextWriter writer )
{
DataTable dt;
string cachename = String.Format( "forumjump_{0}_{1}", ForumPage.User.Name, ForumPage.User.IsAuthenticated );
if ( Page.Cache [cachename] != null )
{
dt = ( DataTable ) Page.Cache [cachename];
}
else
{
dt = DB.forum_listall_sorted( ForumPage.PageBoardID, ForumPage.PageUserID );
Page.Cache [cachename] = dt;
}
writer.WriteLine( String.Format( "" );
}
}
}