求各种重写.net生命周期方法的实例 就是知道有生命周期方法,老是听说可以重写,可比较少看到重写的例子。(可能是接触的项目少了),请大虾们给点实例,感谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是页面生命周期那些零零散散的方法,什么OnInit PreRender PreLoad 这一类的方法 httphandler 和 httpmodule.可以控制页面加载的过程http://www.cnblogs.com/yuanyuan/archive/2010/11/15/1877709.html 你是指这个override ? public string apilist1 = ""; public string URL = ""; public string URL_Menu = ""; override protected void OnInit(EventArgs e) { CheckAdminAuthority(); if (CheckAuthorityCode("G1000")) { URL = "Progress/Implementation.aspx"; URL_Menu = "menu.aspx?type=0"; } else if (CheckAuthorityCode("G2000")) { URL = "Project/project_list.aspx"; URL_Menu = "menu.aspx?type=1"; } else if (CheckAuthorityCode("G3000")) { URL = "base/organ_list.aspx"; URL_Menu = "menu.aspx?type=2"; } else if (CheckAuthorityCode("G4000")) { URL = "Sys/sys_user_list.aspx"; URL_Menu = "menu.aspx?type=3"; } else { URL = "Progress/Implementation.aspx"; URL_Menu = "menu.aspx?type=0"; } } 我觉得这个不叫重写,你新建一个aspx页面时,默认提供了一个protected void Page_Load(object sender, EventArgs e){}aspx页面生命周期提供的事件都是按照上面的格式来写(这些时间大概有10个左右吧,可以网上查查),我的理解是,这些事件是微软提供的“接口”,就是在页面从“生”到“死”相应的时间所触发的事件,有力于程序员实现更为复杂的功能 重写页面方法一个自定义控件继承自ImageButton控件,在控件render之前设置其ImageUrl属性:protected override void OnPreRender( EventArgs e ){ // setup inital image state this.ImageUrl = PageContext.Theme.GetCollapsiblePanelImageURL( PanelID, DefaultState ); UpdateAttachedVisibility(); base.OnPreRender( e );} override 是Discuz!NT常用到的,因为他的模板要在页面加载前选初使化,并附值给全局变量,以方便后期的调用<%@ Page language="c#" AutoEventWireup="false" EnableViewState="false" Inherits="Discuz.Web.activationuser" %><%@ Import namespace="System.Data" %><%@ Import namespace="Discuz.Common" %><%@ Import namespace="Discuz.Forum" %><%@ Import namespace="Discuz.Entity" %><script runat="server">override protected void OnInit(EventArgs e){ /* This page was created by Discuz!NT Template Engine at 2010/5/6 17:18:26. 本页面代码由Discuz!NT模板引擎生成于 2010/5/6 17:18:26. */ base.OnInit(e); templateBuilder.Capacity = 220000; if (infloat!=1) { templateBuilder.Append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n"); templateBuilder.Append("<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n"); templateBuilder.Append("<head>\r\n"); templateBuilder.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n"); if (pagetitle=="首页") { templateBuilder.Append("<title>"); templateBuilder.Append(config.Forumtitle.ToString().Trim()); templateBuilder.Append(" "); templateBuilder.Append(config.Seotitle.ToString().Trim()); templateBuilder.Append(" - Powered by Discuz!NT</title>\r\n"); } else { templateBuilder.Append("<title>"); templateBuilder.Append(pagetitle.ToString()); templateBuilder.Append(" - "); templateBuilder.Append(config.Forumtitle.ToString().Trim()); templateBuilder.Append(" "); templateBuilder.Append(config.Seotitle.ToString().Trim()); templateBuilder.Append(" - Powered by Discuz!NT</title>\r\n"); } //end if templateBuilder.Append(meta.ToString()); templateBuilder.Append("\r\n"); templateBuilder.Append("<meta name=\"generator\" content=\"Discuz!NT 3.1.0\" />\r\n"); templateBuilder.Append("<meta name=\"author\" content=\"Discuz!NT Team and Comsenz UI Team\" />\r\n"); templateBuilder.Append("<meta name=\"copyright\" content=\"2001-2010 Comsenz Inc.\" />\r\n"); templateBuilder.Append("<meta http-equiv=\"x-ua-compatible\" content=\"ie=7\" />\r\n");.... } //end if Response.Write(templateBuilder.ToString());}</script> 你在.cs空白的地方(类内任何方法外) 输入override ,然后就可以看到你所有可以override的方法了。 这位大哥说的是,msdn上也提到开发自定义控件,需要对生命周期方法很熟悉。但由于平常用得比较少,小弟感觉自己忽视了。前几天去hp面试,两轮面试的人第一个问题都是问我生命周期,直接悲剧了 200分讨论,查询页与编辑页切换状态保存的问题 表单提交 为什么要重新打开网站才有效果,刷新和回发都不行 dataTable和dataRow 我想清除保存在服务器上的IE缓存,该怎么做呢 DataGrid属性里怎么现实数据删除 关于Cache["×××"]页面暂存数据的问题,如何避免不重复? 求教一个正则表达式 请教各位大大几个问题 日期模糊查找 数据绑定的问题 gridview编辑时使用下拉框,且下拉框的datasource需要根据EditIndex来得到 求助 获取asp.net控件的实际位置或屏幕实际位置
就是页面生命周期那些零零散散的方法,什么OnInit PreRender PreLoad 这一类的方法
http://www.cnblogs.com/yuanyuan/archive/2010/11/15/1877709.html
public string apilist1 = "";
public string URL = "";
public string URL_Menu = "";
override protected void OnInit(EventArgs e)
{
CheckAdminAuthority();
if (CheckAuthorityCode("G1000"))
{
URL = "Progress/Implementation.aspx";
URL_Menu = "menu.aspx?type=0";
}
else if (CheckAuthorityCode("G2000"))
{
URL = "Project/project_list.aspx";
URL_Menu = "menu.aspx?type=1";
}
else if (CheckAuthorityCode("G3000"))
{
URL = "base/organ_list.aspx";
URL_Menu = "menu.aspx?type=2";
}
else if (CheckAuthorityCode("G4000"))
{
URL = "Sys/sys_user_list.aspx";
URL_Menu = "menu.aspx?type=3"; }
else
{
URL = "Progress/Implementation.aspx";
URL_Menu = "menu.aspx?type=0";
}
}
{}aspx页面生命周期提供的事件都是按照上面的格式来写(这些时间大概有10个左右吧,可以网上查查),我的理解是,这些事件是微软提供的“接口”,就是在页面从“生”到“死”相应的时间所触发的事件,有力于程序员实现更为复杂的功能
一个自定义控件继承自ImageButton控件,在控件render之前设置其ImageUrl属性:
protected override void OnPreRender( EventArgs e )
{
// setup inital image state
this.ImageUrl = PageContext.Theme.GetCollapsiblePanelImageURL( PanelID, DefaultState );
UpdateAttachedVisibility();
base.OnPreRender( e );
}
<%@ Import namespace="System.Data" %>
<%@ Import namespace="Discuz.Common" %>
<%@ Import namespace="Discuz.Forum" %>
<%@ Import namespace="Discuz.Entity" %><script runat="server">
override protected void OnInit(EventArgs e)
{ /*
This page was created by Discuz!NT Template Engine at 2010/5/6 17:18:26.
本页面代码由Discuz!NT模板引擎生成于 2010/5/6 17:18:26.
*/ base.OnInit(e); templateBuilder.Capacity = 220000; if (infloat!=1)
{ templateBuilder.Append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n");
templateBuilder.Append("<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n");
templateBuilder.Append("<head>\r\n");
templateBuilder.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n"); if (pagetitle=="首页")
{ templateBuilder.Append("<title>");
templateBuilder.Append(config.Forumtitle.ToString().Trim());
templateBuilder.Append(" ");
templateBuilder.Append(config.Seotitle.ToString().Trim());
templateBuilder.Append(" - Powered by Discuz!NT</title>\r\n"); }
else
{ templateBuilder.Append("<title>");
templateBuilder.Append(pagetitle.ToString());
templateBuilder.Append(" - ");
templateBuilder.Append(config.Forumtitle.ToString().Trim());
templateBuilder.Append(" ");
templateBuilder.Append(config.Seotitle.ToString().Trim());
templateBuilder.Append(" - Powered by Discuz!NT</title>\r\n"); } //end if
templateBuilder.Append(meta.ToString());
templateBuilder.Append("\r\n");
templateBuilder.Append("<meta name=\"generator\" content=\"Discuz!NT 3.1.0\" />\r\n");
templateBuilder.Append("<meta name=\"author\" content=\"Discuz!NT Team and Comsenz UI Team\" />\r\n");
templateBuilder.Append("<meta name=\"copyright\" content=\"2001-2010 Comsenz Inc.\" />\r\n");
templateBuilder.Append("<meta http-equiv=\"x-ua-compatible\" content=\"ie=7\" />\r\n");
....
} //end if
Response.Write(templateBuilder.ToString());
}
</script>
这位大哥说的是,msdn上也提到开发自定义控件,需要对生命周期方法很熟悉。但由于平常用得比较少,小弟感觉自己忽视了。前几天去hp面试,两轮面试的人第一个问题都是问我生命周期,直接悲剧了