繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> ASP.NET ViewState 初探 (2) 转自msdn

ASP.NET ViewState 初探 (2) 转自msdn

2007-07-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:请看下面的示例:要在 Web 页上显示一个项目列表,而每个用户需要不同的列表排序。项目列表是静态的,因此可以将这些页面绑定到相同的缓存数据集,而排序顺序只是用户特定的 UI 状态的一小部分。ViewState 非常适...
关键字:转自 ViewState msdn NET ASP

请看下面的示例:要在 Web 页上显示一个项目列表,而每个用户需要不同的列表排序。项目列表是静态的,因此可以将这些页面绑定到相同的缓存数据集,而排序顺序只是用户特定的 UI 状态的一小部分。ViewState 非常适合于存储这种类型的值。代码如下:

[Visual Basic]

<%@ Import Namespace="System.Data" %>

用于页面 UI 状态值的 ViewState/title></p> <p></HEAD></p> <p><body></p> <p><form runat="server"></p> <p><H3></p> <p>在 ViewState 中存储非控件状态</p> <p></H3></p> <p><P></p> <p>此示例将一列静态数据的当前排序顺序存储在 ViewState 中。<br></p> <p>单击列标题中的链接,可按该字段排序数据。<br></p> <p>再次单击该链接,将按相反顺序排序。</p> <p><br><br><br></p> <p><ASP:datagrid id="DataGrid1" runat="server"</p> <p>OnSortCommand="SortGrid" BorderStyle="None" BorderWidth="1px"</p> <p>BorderColor="#CCCCCC" BackColor="White" CellPadding="5" AllowSorting="True"></p> <p><HeaderStyle Font-Bold="True" ForeColor="White"</p> <p>BackColor="#006699"></p> <p></HeaderStyle></p> <p></ASP:datagrid></p> <p></P></p> <p></form></p> <p></body></p> <p></HTML></p> <p><script runat="server"></p> <p>' 在 ViewState 中跟踪 SortField 属性</p> <p>Property SortField() As String</p> <p>Get</p> <p>Dim o As Object = ViewState("SortField")</p> <p>If o Is Nothing Then</p> <p>Return String.Empty</p> <p>End If</p> <p>Return CStr(o)</p> <p>End Get</p> <p>Set(Value As String)</p> <p>If Value = SortField Then</p> <p>' 与当前排序文件相同,切换排序方向</p> <p>SortAscending = Not SortAscending</p> <p>End If</p> <p>ViewState("SortField") = Value</p> <p>End Set</p> <p>End Property</p> <p>' 在 ViewState 中跟踪 SortAscending 属性</p> <p>Property SortAscending() As Boolean</p> <p>Get</p> <p>Dim o As Object = ViewState("SortAscending")</p> <p>If o Is Nothing Then</p> <p>Return True</p> <p>End If</p> <p>Return CBool(o)</p> <p>End Get</p> <p>Set(Value As Boolean)</p> <p>ViewState("SortAscending") = Value</p> <p>End Set</p> <p>End Property</p> <p>Private Sub Page_Load(sender As Object, e As EventArgs) Handles MyBase.Load</p> <p>If Not Page.IsPostBack Then</p> <p>BindGrid()</p> <p>End If</p> <p>End Sub</p> <p>Sub BindGrid()</p> <p>' 获取数据</p> <p>Dim ds As New DataSet()</p> <p>ds.ReadXML(Server.MapPath("TestData.XML"))</p> <p>Dim dv As New DataView(ds.Tables(0))</p> <p>' 应用排序过滤器和方向</p> <p>dv.Sort = SortField</p> <p>If Not SortAscending Then</p> <p>dv.Sort += " DESC"</p> <p>End If</p> <p>' 绑定网格</p> <p>DataGrid1.DataSource = dv</p> <p>DataGrid1.DataBind()</p> <p>End Sub</p> <p>Private Sub SortGrid(sender As Object, e As DataGridSortCommandEventArgs)</p> <p>DataGrid1.CurrentPageIndex = 0</p> <p>SortField = e.SortExpression</p> <p>BindGrid()</p> <p>End Sub</p> <p></script></p> <p>[C#]</p> <p><%@ Page Language="C#" %></p> <p><%@ Import Namespace="System.Data" %></p> <p><HTML></p> <p><HEAD></p> <p><title>用于页面 UI 状态值的 ViewState

在 ViewState 中存储非控件状态

此示例将一列静态数据的当前排序顺序存储在 ViewState 中。

单击列标题中的链接,可按该字段排序数据。

再次单击该链接,将按相反顺序排序。




BorderStyle="None" BorderWidth="1px" BorderColor="#CCCCCC"

BackColor="White" CellPadding="5" AllowSorting="True">

下面是上述两个代码段中引用的 testdata.XML 的代码:

0736

New Moon Books

Boston

MA

USA

0877

Binnet & Hardley

Washington

DC

USA

1389

Algodata Infosystems

Berkeley

CA

USA

1622

Five Lakes Publishing

Chicago

IL

USA

1756

Ramona Publishers

Dallas

TX

USA

9901

GGG&G

Muenchen

Germany

9952

Scootney Books

New York

NY

USA

9999

Lucerne Publishing

Paris

France

责任编辑:admin
相关文章