<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Asp.net服務(wù)器控件編程(6) ViewState(二)——ViewState用法和IStateManager

              本系列的第三章我們了解了ViewState的基礎(chǔ)知識,也大概的了解了Aspx頁面的生命周期,今天繼續(xù)講解ViewState的Asp.net服務(wù)器控件中的使用和復(fù)雜的ViewState管理。
              ViewState的簡單使用我們只要舉個簡單的例子即可:

      using System;
      using System.Collections.Generic;
      using System.Text;
      using System.Web.UI.WebControls;

      namespace ClassLibrary1
      {
          
      public class Class1 : WebControl
          
      {
              
      private string _sex;
              
      public string Sex
              
      {
                  
      get
                  
      {
                      
      return _sex;
                  }

                  
      set
                  
      {
                      _sex 
      = value;
                  }

              }


              
      public string Name
              
      {
                  
      get
                  
      {
                      
      if (EnableViewState)
                      
      {
                          
      object o = ViewState["Name"];
                          
      if (o != null)
                              
      return (string)o;
                          
      else
                              
      return string.Empty;
                      }

                      
      else
                          
      return string.Empty;
                  }

                  
      set
                  
      {
                      
      if (EnableViewState)
                          ViewState[
      "Name"= value;
                  }

              }


              
      protected override void RenderChildren(System.Web.UI.HtmlTextWriter writer)
              
      {
                  writer.Write(
      "Name:" + Name + "<br>");
                  writer.Write(
      "Sex:" + Sex);
              }

          }

      }

              效果如下:
             
              一個Aspx頁面在提交和返回的過程會執(zhí)行LoadViewState和SaveViewState兩方法,這就是控件的狀態(tài)并行化和串行化的過程,而這個過程是通過LosFormatter對象來完成的。Los 格式化程序用于高度壓縮 ASCII 格式的序列化,它實現(xiàn)了整數(shù)、bool、字符串的串行,同時Array、ArrayList和HashTable的對象圖進行了優(yōu)化,控件保存在ViewState中的任何對象都必須由LosFormatter來串行化。
              ViewState屬性的類型是StateBag類,改類是個字典,它通過實現(xiàn)ISateManager接口參與狀態(tài)管理。StateBag保存鍵/值對,其中鍵是字符串而值是對象,當(dāng)某個對象添加到StateBag實例中時,StateBag自動為改對象添加一個附加位,它來存儲對象是否被更改過。Control的狀態(tài)管理默認(rèn)都是由ViewState來完成,但是,當(dāng)控件定義了復(fù)雜屬性時,想用ViewState來自動管理這些屬性就不可能了,所以我們復(fù)雜屬性的自定義類型可以通過IStateManager接口來參與狀態(tài)管理。IStateManager的原形如下:
      bool IsTrackingViewState { get; }
               void LoadViewState(object state);
               object SaveViewState();
              void TrackViewState();
              在.net中Control類沒有從IStateManager繼承下來,但是Control卻實現(xiàn)IStateManager的原形,這里的實現(xiàn)就不在舉例來說明,如果需要的話,可以參考《ASP.NET服務(wù)器控件與組件開發(fā)》的183頁。

      posted @ 2006-07-11 00:11  mapserver  閱讀(5665)  評論(5)    收藏  舉報
      主站蜘蛛池模板: 国产普通话对白刺激| 中文字幕日韩精品人妻| 中文字幕av无码免费一区| 国产不卡精品视频男人的天堂 | 国产中文字幕精品免费| 亚洲高清国产成人精品久久| 无码中文av波多野结衣一区| 377P欧洲日本亚洲大胆| 超碰成人精品一区二区三| 亚洲高潮喷水无码AV电影| 日韩丝袜亚洲国产欧美一区| 国内精品无码一区二区三区| 亚洲嫩模一区二区三区| 车致| аⅴ天堂国产最新版在线中文| 99re6在线视频精品免费下载| 国产精品成人自产拍在线| 达拉特旗| 无码熟妇人妻av影音先锋| 人妻系列中文字幕精品| 亚洲成AV人片在线观高清| 一本色道久久综合熟妇人妻| 久久无码中文字幕免费影院蜜桃| 久久这里只精品热免费99| 国产999久久高清免费观看| 亚洲V天堂V手机在线| 国产一区二区三区自拍视频| 中国少妇人妻xxxxx| 国产激情一区二区三区四区| 亚洲人妻一区二区精品| 嘉善县| 欧美日产国产精品日产| 加勒比亚洲视频在线播放| 国产成人高清精品亚洲| 和黑人中出一区二区三区| 久久人人97超碰爱香蕉| 国产极品美女高潮抽搐免费网站 | 久久综合伊人77777| 吴忠市| 视频一区二区不中文字幕| 伊人久久大香线蕉av五月天|