母板页和内容页事件执行的顺序
来源:互联网 发布:周传雄 黄昏 知乎 编辑:程序博客网 时间:2024/06/05 22:42
今天在弄搜索界面与后台连接显示这块出现了如下的错误:
这样的错误首先是从后台来去找,发现后台没有任何的错误, 就是前台的问题了, 前台界面实在是找不出来就和牛腩的源码进行了对比, 对不的结果是没有错误的, 但是我直接运行搜索框这个页面就是不行. 后来想到的母板页面的错误, 母板中的代码:
namespace UI{ public partial class common : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { } //搜索按钮. protected void ibtnSearch_Click(object sender, ImageClickEventArgs e) { string key = txtKey.Text.Trim(); //判断搜索是根据标题还是内容.用三元运算符. string action=radTitle .Checked ? "bytitle" :"bycontent"; //点击按钮重定向到页面. //跳转的是当前根目录下的search.aspx文件.是相对路径. 并给key编码. Response.Redirect("~/search.aspx?key=" + Server.UrlEncode(key) + "&action=" + action); } }}
namespace UI{ public partial class search : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //获取html查询变量的集合. // string key =Request.QueryString["key"]; string key = Server.UrlDecode(Request.QueryString["key"]); string action = Request.QueryString["action"]; if ("bytitle" == action) { //按标题搜索 gvNews .DataSource = new NewsManager().SelectByTitle(key); gvNews.DataBind(); } else { //按内容搜索; gvNews.DataSource = new NewsManager().SelectByContent(key); gvNews.DataBind(); } } }
首相说说母板, 就是把每个页面相同的东西(框架)抽出来作为一个母板页, 后缀名为.master , 就像是我们的ppt中的母板, 像是提取公因式中的公因式一样, 在此就不再举例了. 还有嵌套母板也是可以这样理解的, 就相当于数学中又一次发现了公因式因子, 并且提取出来了 . 而本次的问题是我们在使用母板的过程中, 加载的机制如何呢, 经过百度发现母板页和它的内容页加载的事件顺序是不一致的:
加载母版页和内容页共需要经过8个过程。这8个过程显示初始化和加载母版页及内容页是一个相互交叠的过程。基本过程是,初始化母版页和内容页控件树,然后,初始化母版页和内容页页面,接着,加载母版页和内容页,最后,加载母版页和内容页控件树。以上8个过程对应着11个具体事件。这些事件如下所示。
(1)母版页中控件Init事件;
(2)内容页中Content控件Init事件;
(3)母版页Init事件;
(4)内容页Init事件;
(5)内容页Load事件;
(6)母版页Load事件;
(7)内容页中Content控件Load事件;
(8)内容页PreRender事件;
(9)母版页PreRender事件;
(10)母版页控件PreRender事件。
(11)内容页中Content控件PreRender事件。
实际上,8个过程或者是11个事件都用于说明母版页和内容页中的具体事件顺序。内容页和母版页中会引发相同的事件。例如,两者都引发Init、Load和PreRender事件。引发事件的一般规律是,初始化Init事件从最里面的控件(母版页)向最外面的控件(Conetent控件及内容页)引发,所有其他事件则从最外面的控件向最里面的控件引发。需要牢记,母版页会合并到内容页中,并被视为内容页中的一个控件,这一点十分有用。
所以我们必须注意以上事件顺序。 当在内容页中访问母版页的属性或者服务器控件时,如果按照过去的处理思路,可能会在内容页的Page_Load事件处理程序中加以实现。由前文的事件顺序可知,在母版页Load事件引发之前,内容页Load事件已经引发, 况且我们在母板中是通过点击按钮控件来执行key的传入的. 其实问题在于全局观上, 没有全局的把控, 就不知道调试的方向, 调试的方向错了, 就怎么也调试不出来.....
总之, 做事情的顺序也很重要吼~~~
- 母板页和内容页事件执行的顺序
- 如何使用 MasterPage(注意母板页和子页面的执行顺序)
- C# MasterPage母板页Page_Load执行顺序
- 母板页运行顺序
- 内容页和母板页互访
- 引用asp.net母版页后,母版页和内容页的页面事件执行顺序
- 母板页中的事件Page_Load居然不执行
- 内容页 母板页 传值
- 母板页与内容页传值
- 母版页和内容页的执行顺序
- 母版页和内容页的执行顺序
- 母版页和内容页的执行顺序
- 母版页,内容页,控件 事件执行顺序
- ASP母板页与内容页的异目录使用
- 母板页
- 母板页
- 事件冒泡和捕获的执行顺序
- 动态的加载母板页
- 创建sql数据库复制的发布、订阅的问题处理
- linux下安装bind
- JS 动态添加删除文本 并获取文本值
- Maven2之旅
- Qt学习之路_3(VS下Qt的信号与槽初次体验)
- 母板页和内容页事件执行的顺序
- Repeater嵌套绑定Repeater
- 深入浅出设计模式笔记之十五:备忘录模式
- 给做手机研发的前80后工程师们提个醒
- php curl Call to undefined function curl_init()问题
- 转载 C#的类库中添加Web Service引用
- js闭包
- mysql常用命令
- WIA扫描仪驱动