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
  
 }
}

posted on 2005-09-18 23:37  刘余学  阅读(1490)  评论(1编辑  收藏  举报

导航