页面基类PageBase

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

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
/// <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; }
}
}

转载于:https://www.cnblogs.com/gaowenbin/articles/1855291.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值