首页 >> .NET Framework >> 正文
与ViewState相关联的.Net FrameWork类库-.NET Framework
来源:Dotnet频道 作者:采集 时间:2008-4-1


  我们在用.net开发web应用程序的时候经常会用到ViewState,真是个很有用的东东,那么ViewState到底是何方人氏那?
  其实ViewState只是StateBag类的一个实例,所以我们平时看到的只是冰山的一角,现在我们就来探究一下下面的更大的冰山.
  *********************************************************************************************
  
  NET Framework类库  StateBag 类
  1. 概述
  管理 ASP.NET 服务器控件(包括页)的视图状态。无法继承此类。
  Control.ViewState 属性是 StateBag 类的实例。
  有关此类型所有成员的列表,请参阅 StateBag 成员。
  System.Object
  System.Web.UI.StateBag
  [定义][C#]
  public sealed class StateBag : IStateManager, IDictionary,ICollection, IEnumerable
  [线程安全]
  此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。
  [备注]
  页或控件的视图状态是该页或控件的累计属性值或视图。可以通过 Control.ViewState 属性访问此类。
  此类是所有 HTML 和 Web 服务器控件的主存储机制。它将属性/值对存储为与控件关联的字符串。仅在为页请求执行 OnInit 方法后,它才跟踪这些属性的更改,并将更改保存到页或控件的视图状态。
  在控件处理生存期的任何阶段可以从此类读取,但是当控件正在呈现时不应该向此类写入。
  此类实现一个字典,可以像对待任何字典对象那样从其中添加或移除项。有关数据集合(如字典)的更多信息,请参见将数据组合到集合中。
  [示例]
  下面的示例说明一个具有 Text 和 FontSize 属性的复合 Label 控件。当在该控件上调用 Control.Render 方法时,这些属性保存到视图状态并从视图状态检索。
  -------------------------------------------------------------------------------------------------------
  [C#]
  // This control renders values stored in view state for Text and FontSize properties.
  using System;
  using System.Web;
  using System.Web.UI;
  namespace ViewStateControlSamples {
  public class Label: Control {
  // Add property values to view state with set;
  // retrieve them from view state with get.
  public String Text {
  get {
  return (String) ViewState["Text"];
  }
  set {
  ViewState["Text"] = value;
  }
  }
  public int FontSize {
  get {
  return (int) ViewState["FontSize"];
  }
  set {
  ViewState["FontSize"] = value;
  }
  }
  
  [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
  protected override void Render(HtmlTextWriter output) {
  output.Write("" + this.Text + "");
  }
  }
  }
  ---------------------------------------------------------------------------------------------
  2.构造函数
  2.1 StateBag 构造函数
  public StateBag();  初始化 StateBag 类的新实例。这是此类的默认构造函数。
  public StateBag(bool); 初始化 StateBag 类的新实例,该实例允许存储的状态值不区分大小写。
  忽略大小写为 true;否则为 false。
  3.属性
  3.1 StateBag.Count 属性
  获取 StateBag 对象中的 StateItem 对象数。
  属性值 是 StateBag 对象中的项数。
  实现  ICollection.Count
  使用示例:
  -----------------------------------------------------
  [C#]
  private string GetMruList(string selectedValue) {
  StateBag state = ViewState;
  if (state.Count > 0) {
  int upperBound = state.Count;
  string[] keys = new string[upperBound];
  StateItem[] values = new StateItem[upperBound];
  state.Keys.CopyTo(keys, 0);
  state.Values.CopyTo(values, 0);
  StringBuilder options = new StringBuilder();
  for(int i = 0; i < upperBound; i++) {
  options.AppendFormat("
相关新闻
相关评论
 
评论表单加载中...
 
.NET Framework文章

 在Visual C++应

 编辑:admin

 时间:2008-3-10


   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
最新文章
   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
总站搜索
搜索
 
热门文章
   oracle数据库文件中的导入\导出
   用Oracle10g列值掩码技术隐藏敏感数据
   VB程序中用ADO对象动态创建数据库和表-VB.NET
   用VB6写简单程序 让电骡自动关机-VB.NET
   使用.NET2.0编写COM组件供VB调用-VB.NET
   VB.NET:键盘控制焦点移动-VB.NET
   用VB.NET绘制GDI图形-VB.NET
   vb.net中应用 ArrayList 实例-VB.NET
 
推荐文章
ASP.NET中的状态管理-ASP.NET
VC、IE、ASP环境下打印、预备的完美解决方案
oracle数据库文件中的导入\导出
VB.NET中快速访问注册表技巧-VB.NET
在vb中实现超连接的方法!和直接发邮件-VB.NET
用VB做realplayer播放列表-VB.NET
在VB.NET中如何实现和利用SortedLists-VB.NET
利用VB.NET Stopwatch对象记录时间-VB.NET
成都古羌科技有限公司版权所有: Copyright@2007-2010 ,ALL Rights Reserved 蜀ICP备07017240号