服務器控件事件處理方式
1)通過表單提交,也能找到後臺相應的事件處理。
2)通過回調函數(JavaScript中的回調函數),
也能找到相應的後臺事件處理。(ASP.NET回發機制)
需要設置控件的屬性:this.Button1.UseSubmitBehavior = false;
3) 如何找母版頁的控件。
//設置控件是否可見(隱藏)
protected void Button_Click(object sender,EventArgs e)
{
(this.Master.FindControl("hllogin")as HyperLink).Visible = false;
}
頁面生命週期
1)刷新並不是回發,只有在操作的時候纔是回發
2)所有的服務器控件的事件的處理均是在頁面加載完畢之後才處理。
3)ViewState:保留上一次請求的記錄值。
頁面生命週期的主要階段包括:階段事件/方法 protected override void .....
頁面初始化 Page_lnit
加載View State LoadViewState
會發數據處理 LoadPostData
頁面加載 Page_Load
回發通知 RaisePostDataChangedEvent
回發事件處理 RaisePostBackEvent
頁面預渲染 Page_PreRender
保存 viewstate SaveViewState
page渲染 page_Render
page卸載 Page_Unload
如果頁面的AutoEventWireup屬性爲false(默認值爲true),那麼頁面回傳後頁面的事件將不會引發。
AutoEventWireup屬性可以在@Page指令中設置,或者在Web.config文件中設置autoEventWireup屬性。
頁面的IsPostBack屬性就是專門用啦做回發檢查的。如果是回發,IsPostBack的值取true,否則去false。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ddwproj
{
public partial class Demo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//if (this.IsPostBack)
//{
Response.Write("輸入框的數據:" + this.TextBox1.Text+"<br>");
//}
Response.Write("這是頁面加載的事件處理<br>");
if (ViewState["count"] == null)
{
ViewState["count"] = 1;
}
else
{
ViewState["count"] = (int)ViewState["count"] + 1;
}
Response.Write("你請求了" + ViewState["count"] + "次");
}
//頁面的初始化
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
//Response.Write("輸入框的數據:" + this.TextBox1.Text);
Response.Write("頁面的初始化<br>");
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("這是按鈕事件的處理<br>"); //<br>只是換行
}
}
} Demo.aspx.cs
服務器控件的處理方式 頁面的生命週期
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.