服務器控件的處理方式 頁面的生命週期


服務器控件事件處理方式
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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章