PageBase
using System;
using System.Web;
using System.Web.UI;
using System.ComponentModel;
using System.Data;
using System.Web.UI.WebControls;
using SysUtility.Utils;
namespace SysUtility
{
/// <summary>
/// 在系统中的所有页面的基类
/// <remarks>
/// 在系统中的所有页面建议从此类继承
/// </remarks>
/// </summary>
public class PageBase : System.Web.UI.Page
{
/// <summary>
/// 登录用户信息
/// </summary>
protected UserInfo LogonUser
{
get { return Session[KeyConsts.KEYCONSTS_LOGONUSER]==null ? null : (UserInfo)Session[KeyConsts.KEYCONSTS_LOGONUSER]; }
set { Session[KeyConsts.KEYCONSTS_LOGONUSER] = value; }
}
protected IController adminHelper;
/// <summary>
/// 设置一个全局值
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
protected void SetValue(string key, object value)
{
Session[key] = value;
}
/// <summary>
/// 获取一个全局值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
protected object GetValue(string key)
{
if ( Session[key] != null )
{
return Session[key];
}
return null;
}
/// <summary>
/// 构造函数,初始化PageBase类的新实例。
/// </summary>
public PageBase()
{
adminHelper = new RMController(); // TODO 可以配置
this.Load += new EventHandler(PageBase_Load);
this.PreRender += new EventHandler(PageBase_PreRender);
}
/// <summary>
/// 判断是否有查看页面的权限
/// </summary>
/// <returns></returns>
protected bool HasPermission()
{
// TODO
return true;
}
/// <summary>
/// 把目标页面返回到前一个页面
/// </summary>
/// <param name="objPage">目标页面</param>
protected void DoCancel()
{
string strUrl = (string)this.GetValue(KeyConsts.KEYCONSTS_PARENTPAGEURL);
if ( !SysUtil.IsNull(strUrl) )
{
Response.Redirect(strUrl, true);
}
}
/// <summary>
/// 添加确认提示
/// </summary>
/// <param name="ctrl">目标控件</param>
/// <param name="msg">提示信息</param>
protected void AddConfirm(WebControl ctrl, string msg)
{
ctrl.Attributes.Add("onclick", string.Format("javascript:return confirm('{0}')", msg));
}
/// <summary>
/// 设置排序字段
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void SetSortField(Object sender, DataGridSortCommandEventArgs e)
{
string oldExp = (string)this.GetValue(KeyConsts.KEYCONSTS_SORTEXPRESSION);
string newExp = e.SortExpression;
if ( newExp == oldExp )
{
newExp = newExp + " DESC";
}
this.SetValue(KeyConsts.KEYCONSTS_SORTEXPRESSION, newExp);
}
#region chkItemOnLoad
/// <summary>
/// 页面表格控件中的复选框的事件处理函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void chkItemOnLoad(object sender, System.EventArgs e)
{
CheckBox chk = sender as CheckBox;
if ( chk != null )
{
chk.Attributes.Add("onclick","chkItemClick('"+chk.ClientID+"')");
}
}
#endregion
#region PageBase_Load
/// <summary>
/// 加载页面时进行的处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PageBase_Load(object sender, EventArgs e)
{
this.Visible = true;
if ( this.LogonUser == null )
{
this.Visible = false;
Response.Redirect(HttpContext.Current.Request.ApplicationPath+"/Manager/Login.aspx");
}
if ( !IsPostBack && Request.UrlReferrer != null )
{
this.SetValue(KeyConsts.KEYCONSTS_PARENTPAGEURL, Request.UrlReferrer.ToString());
this.SetValue(KeyConsts.KEYCONSTS_SORTEXPRESSION, string.Empty);
}
}
#endregion
#region PageBase_PreRender
/// <summary>
/// 将要呈现页面时进行的处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PageBase_PreRender(object sender, EventArgs e)
{
// TODO
}
#endregion
}
}