如何编写BasePage类

发布网友 发布时间:2022-04-21 00:23

我来回答

3个回答

热心网友 时间:2022-04-24 23:06

BasePage是ASPX页面的父类,在ASP.NET开发中经常用到,主要包含一些页面常用的方法和Session的操作,使这些在各个子页面中通用。下面是我经常用的一个BasePage,希望你能帮助你理解,BasePage要继承System.Web.UI.Page,各个子页面则需要继承BasePage就可以使用里面的变量和方法了。

public partial class 子类1: BasePage
{

}

///////////////BasePage源码///////////////

public class BasePage : System.Web.UI.Page
{
static BasePage()
{

}

public string BaseUrl
{
get
{
string sUrl = Request.Url.AbsoluteUri;
return sUrl.Substring(0, sUrl.LastIndexOf("/"));
}
}

/// <summary>
/// 登录人ID,对应Users里的USERID
/// </summary>
public string USERID
{
get
{
if (Session["USERID"] != null)
return Session["USERID"].ToString();
else
return "";
}
set
{
Session["USERID"] = value;
}
}

#region 页面加载流程
private void Page_Load(object sender, System.EventArgs e)
{
Page_LoadAlwayInit();

Page_LoadAlways();

if (IsPostBack)
{
Page_LoadPostBack();
}
else
{
Page_LoadOnce();
}
}

protected virtual void Page_LoadOnce()
{

}

protected virtual void Page_LoadPostBack()
{

}

protected virtual void Page_LoadAlways()
{

}

private void Page_LoadAlwayInit()
{

}
#endregion

#region 基类方法

public void AlertMessage(string title ,string msg)
{
msg = msg.Replace("\\", "\\\\");
msg = msg.Replace("\r\n", "\\n");
msg = msg.Replace("\n", "\\n");
msg = msg.Replace("\"", "\\\"");
string script = "";
if(title == null)
script = "<script>Ext.onReady(function(){Ext.MessageBox.alert('" + msg + "');})</script>";
else
script = "<script>Ext.onReady(function(){Ext.MessageBox.alert('" + title + "', '" + msg + "');})</script>";
ClientScript.RegisterStartupScript(this.GetType(), System.Guid.NewGuid().ToString(), script);
}

/// <summary>
/// 弹出页面
/// </summary>
/// <param name="url"></param>
public void OpenUrl(string url)
{
string script = string.Format("<script language='JavaScript'>window.open('" + "{0}" + "','" + "','');<", url);
script += "/";
script += "script>";

ScriptManager.RegisterStartupScript(this, this.GetType(), System.Guid.NewGuid().ToString(), script, false);
}

/// <summary>
/// 返回上一页
/// </summary>
public void JavascriptGoBack()
{
string script = "<script>history.go(-1);</script>";
ClientScript.RegisterStartupScript(this.GetType(), System.Guid.NewGuid().ToString(), script);
}

/// <summary>
/// 执行JavaScript方法
/// </summary>
/// <param name="script"></param>
public void JavascriptFun(string script)
{
string AllScript = string.Format("<script>{0}</script>", script);
ClientScript.RegisterStartupScript(this.GetType(), System.Guid.NewGuid().ToString(), AllScript);
}

/// <summary>
/// 关闭窗口
/// </summary>
public void JavascriptClose()
{
string script = "<script>window.opener = null;window.close();</script>";
ClientScript.RegisterStartupScript(this.GetType(), System.Guid.NewGuid().ToString(), script);
}

/// <summary>
/// 跳转到其他页面
/// </summary>
/// <param name="url">页面地址</param>
public void JavascriptGoUrl(string url)
{
string script = string.Format("<script>location = '{0}';</script>", url);
ClientScript.RegisterStartupScript(this.GetType(), System.Guid.NewGuid().ToString(), script);
}

/// <summary>
/// 显示信息并跳转页面
/// </summary>
/// <param name="message"></param>
/// <param name="url"></param>
public void ShowMessageAndGoUrl(string message, string url)
{
string script = string.Format("<script>alert('{0}');location.href='{1}';</script>", message, url);
ClientScript.RegisterStartupScript(this.GetType(), System.Guid.NewGuid().ToString(), script);
}

/// <summary>
/// 获取MD5值
/// </summary>
/// <param name="data">原字符串</param>
/// <returns>通过MD5加密后的</returns>
public string GetMd5Code(string data)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(data, "md5").ToUpper();
}

/// <summary>
/// 返回上一页
/// </summary>
protected bool GoBack()
{
if (ViewState["BackUrl"] != null)
{
Response.Redirect(ViewState["BackUrl"].ToString());
return true;
}
else
return false;
}

/// <summary>
/// 将列转化成字符串形式用逗号分隔
/// </summary>
/// <param name="columns">列字符串</param>
public string GetTableColumns(DataColumnCollection columns)
{
string title = "";
foreach (DataColumn col in columns)
{
title += GetSafeString(col.ColumnName).Replace(',', '_') + ",";
}
return title.Remove(title.Length - 1);
}

public static string CutString(string str, int maxlength)
{
if (str.Length > maxlength)
return str.Substring(0, maxlength) + "....";
else return str;
}
#endregion 基类方法

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}

热心网友 时间:2022-04-25 00:24

你的BasePage是指一个asp.net后台页面的基类吧,那你这个基类必须继承asp.net的基类System.Web.UI.Page,然可以重写一些事件和方法(比如OnPreInit,OnInit等)供子类调用。

热心网友 时间:2022-04-25 01:59

将常量,如:URL参数,Session参数,页面跳转参数
公用方法,如过滤字特殊符串,验证等等..

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com