页面基类PageBase

定义所有页面的基类,包含一些基础方法

代码
/// <summary>
/// 页面的基类
/// </summary>
public class PageBase:System.Web.UI.Page
{
protected string LogoutFilePath = SysConfigs.WebsiteUrl +"Logout.aspx?Action=2";
private MemberShipUser m_User;
private bool m_IsAuthenticated;
private bool m_AlreadyValidate = false;
protected IDataAccess m_DAL = DALFactory.GetDataAccess();

/// <summary>
/// 分页控件
/// </summary>
private AspNetPager m_pager;
/// <summary>
/// 设置“DataBoundControl”控件的引用
/// </summary>
private DataBoundControl m_dataBoundControl;

/// <summary>
/// 设置“Repeater”控件的引用
/// </summary>
private Repeater m_repeater;


/// <summary>
/// 验证用户是否为登录用户
/// </summary>
/// <param name="e"></param>
protected override void OnLoad(EventArgs e)
{
if(ValidateLoginStatus())
{
base.OnLoad(e);
}
}

/// <summary>
/// 验证用的登录状态
/// </summary>
internal bool ValidateLoginStatus()
{
if (m_AlreadyValidate)
return m_IsAuthenticated;

m_IsAuthenticated
= false;
if (User.Identity.IsAuthenticated)
{
ProfileProvider provider
= ProfileFactory.Provider;
m_User
= provider.GetUserInfo();
if (m_User == null)
{
ScriptUtil.AlertAndRedirect(
"用户信息丢失,请重新登陆系统!", LogoutFilePath);
Response.End();
}
else
m_IsAuthenticated
= true;
}
else
{
ScriptUtil.AlertAndRedirect(
"请登陆后再访问系统!", LogoutFilePath);
Response.End();
}

m_AlreadyValidate
= true;
return m_IsAuthenticated;
}


/// <summary>
/// 初始化页面控件(不要放在IsPostBack中)
/// </summary>
/// <param name="pager"></param>
/// <param name="boundControl">数据绑定控件</param>
protected void InitializePageControls(AspNetPager pager, DataBoundControl boundControl)
{
this.m_dataBoundControl = boundControl;
this.m_pager = pager;
}

/// <summary>
/// 初始化页面控件(不要放在IsPostBack中)
/// </summary>
/// <param name="pager"></param>
/// <param name="repeater1"></param>
protected void InitializePageControls(AspNetPager pager, Repeater repeater1)
{
this.m_repeater = repeater1;
this.m_pager = pager;
}

#region 数据绑定(BindGrid)
/// <summary>
/// 绑定表格
/// </summary>
protected virtual void BindGrid(string table,string field,string where,string orderby)
{
int recordCount;
DataTable dt
= m_DAL.GetPageDataList(this.PageIndex, this.PageSize, table, field, where, orderby, out recordCount);

BindGrid(recordCount, dt);
}

/// <summary>
/// 使用SQL语句绑定表格。
/// </summary>
/// <param name="sql"></param>
protected virtual void BindGrid(string sql)
{
int recordCount;
DataTable dt
=m_DAL.GetPageDataList(this.PageIndex, this.PageSize, sql, out recordCount);
BindGrid(recordCount,dt);
}

/// <summary>
/// 使用实体数据集合绑定表格
/// </summary>
/// <param name="recordCount"></param>
/// <param name="list"></param>
protected virtual void BindGrid(int recordCount, System.Collections.IList list)
{
this.m_dataBoundControl.DataSource = list;
this.m_dataBoundControl.DataBind();

if(this.m_pager != null)
PaginationInfo(recordCount);
}

/// <summary>
/// 使用实体数据集合绑定表格
/// </summary>
/// <param name="recordCount"></param>
/// <param name="list"></param>
protected virtual void BindGrid<T>(int recordCount, IList<T> list)
{
this.m_dataBoundControl.DataSource = list;
this.m_dataBoundControl.DataBind();

PaginationInfo(recordCount);
}

/// <summary>
/// 使用实体数据集合绑定表格
/// </summary>
/// <param name="recordCount"></param>
/// <param name="dt"></param>
protected virtual void BindGrid(int recordCount, DataTable dt)
{
this.m_dataBoundControl.DataSource = dt == null ? null : dt.DefaultView;
this.m_dataBoundControl.DataBind();
PaginationInfo(recordCount);
}

/// <summary>
/// 取出全部数据绑定,不分页 add by wxg
/// </summary>
protected virtual void BindGrid(DataTable dt)
{
this.m_dataBoundControl.DataSource = dt == null ? null : dt.DefaultView;
this.m_dataBoundControl.DataBind();
}

/// <summary>
/// 取出全部数据绑定,不分页 add by wxg
/// </summary>
/// <param name="sql"></param>
protected virtual void BindGridNoPager(string sql)
{
DataTable dt
= m_DAL.GetPageDataList(sql);

BindGrid( dt);
}


/// <summary>
/// 使用实体数据集合绑定Repeater控件
/// </summary>
/// <param name="recordCount"></param>
/// <param name="list"></param>
protected virtual void BindReport<T>(int recordCount, IList<T> list)
{
this.m_repeater.DataSource = list;
this.m_repeater.DataBind();

PaginationInfo(recordCount);
}

/// <summary>
/// 设置分页信息
/// </summary>
private void PaginationInfo(int recordCount)
{
PaginationInfo(recordCount,
this.m_pager,this.PageSize,this.PageIndex);
//if (m_dataBoundControl != null)
// this.m_dataBoundControl.PageSize = this.PageSize;
}

/// <summary>
/// 绑定
/// </summary>
/// <param name="recordCount"></param>
/// <param name="pager"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
public static void PaginationInfo(int recordCount, AspNetPager pager,int pageSize,int pageIndex)
{
pager.RecordCount
= recordCount;
pager.AlwaysShow
= true;
pager.PageSize
= pageSize;
pager.PageIndexBoxType
= PageIndexBoxType.DropDownList;
pager.ShowBoxThreshold
= 5;
pager.CurrentPageIndex
= pageIndex;
pager.HorizontalAlign
= HorizontalAlign.Right;
pager.UrlPaging
= true;
pager.ShowCustomInfoSection
= ShowCustomInfoSection.Left;
pager.CustomInfoTextAlign
= HorizontalAlign.Left;
pager.CustomInfoSectionWidth
= Unit.Pixel(250);
//pager.CustomInfoHTML = "[总数]:<font color=\"blue\"><b>%RecordCount%</b></font>&nbsp;&nbsp;";
//pager.CustomInfoHTML += "第<font color=\"red\"><b>%CurrentPageIndex%</b></font>页,共<font color=\"blue\"><b>%PageCount%</b></font>页,每页显示<font color=\"red\"><b>%PageSize%</b></font>条";
//pager.CustomInfoHTML += "[当前页/总页数]:<font color=\"red\"><b>%CurrentPageIndex%</b></font>/<font color=\"blue\"><b>%PageCount%</b></font>&nbsp;&nbsp;";
//pager.CustomInfoHTML += "[每页]:<font color=\"red\"><b>%PageSize%</b></font>";
//pager.CustomInfoHTML = "当前第<font color=\"red\"><b>%CurrentPageIndex%</b></font>/<font color=\"blue\"><b>%PageCount%</b></font>页 共<font color=\"blue\"><b>%RecordCount%</b></font>条记录 每页<font color=\"red\"><b>%PageSize%</b></font>条";
pager.CustomInfoHTML = "当前第<b>%CurrentPageIndex%</b>/<b>%PageCount%</b>页 共<b>%RecordCount%</b>条记录 每页<b>%PageSize%</b>条&nbsp;";

pager.FirstPageText
= "首页";
pager.LastPageText
= "末页";
pager.NextPageText
= "下页";
pager.PrevPageText
= "上页";
pager.CssClass
= "PagingClass";
pager.CurrentPageButtonClass
= "CurrentPagingClass";
}

#endregion

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
if (this.m_dataBoundControl != null)
{
GridView gv
= m_dataBoundControl as GridView;
if (gv != null)
{
foreach (GridViewRow row in gv.Rows)
{
//鼠标经过时,行背景色变
row.Attributes.Add("onmouseover", "this.style.backgroundColor='#FFFDD7'");
//鼠标移出时,行背景色变
row.Attributes.Add("onmouseout", "this.style.backgroundColor=''");
}
}
}
base.Render(writer);
}

/// <summary>
/// 页码
/// </summary>
protected virtual int PageIndex
{
get
{
if (this.m_pager == null && string.IsNullOrEmpty(Request.QueryString["page"]))
return 1;

if (Request.QueryString["page"] == null || Request.QueryString["page"].Trim() == "")
return this.m_pager.CurrentPageIndex;

return int.Parse(Request.QueryString["page"]);
}
set { this.m_pager.CurrentPageIndex = value; }
}

/// <summary>
/// 页长
/// </summary>
protected virtual int PageSize
{
get
{
return SysConfigs.PageSize;
}
}

/// <summary>
/// 用户ID号
/// </summary>
public int UserId
{
get { return m_User.UserId; }
}
/// <summary>
/// 用户名称
/// </summary>
public string UserName
{
get { return m_User.UserName; }
}
/// <summary>
/// 所属部门ID号
/// </summary>
public int DeptId
{
get { return m_User.DeptId; }
}
/// <summary>
/// 所属部门名称
/// </summary>
public string DeptName
{
get { return m_User.DeptName; }
}

/// <summary>
/// 单位标识号
/// </summary>
public int UnitId
{
get { return m_User.UnitId; }

}

/// <summary>
/// 单位标识号
/// </summary>
public int FDAID
{
get { return m_User.UnitId; }
}

/// <summary>
/// 单位名称
/// </summary>
public string UnitName
{
get { return m_User.UnitName; }
}

/// <summary>
/// 单位全称
/// </summary>
public string FullUnitName
{
get { return m_User.FullUnitName; }
}

///<summary>
/// 是否为主要单位
///</summary>
public bool IsMainUnit
{
get { return m_User.IsMainUnit; }
}

/// <summary>
/// 是否为管理员用户
/// </summary>
public bool IsAdministrator
{
get { return m_User.IsAdministrator; }
}
}
posted @ 2010-10-19 09:15  marr  阅读(529)  评论(0编辑  收藏  举报