当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET ViewState 初探 (2)
请看下面的示例:要在Web页上显示一个项目列表,而每个用户需要不同的列表排序。项目列表是静态的,因此可以将这些页面绑定到相同的缓存数据集,而排序顺序只是用户特定的UI状态的一小部分。ViewState非常适合于存储这种类型的值。代码如下:
[VisualBasic]
<%@ImportNamespace="System.Data"%> <HTML> <HEAD> <title>用于页面UI状态值的ViewState/title> </HEAD> <body> <formrunat="server"> <H3> 在ViewState中存储非控件状态 </H3> <P> 此示例将一列静态数据的当前排序顺序存储在ViewState中。<br> 单击列标题中的链接,可按该字段排序数据。<br> 再次单击该链接,将按相反顺序排序。 <br><br><br> <asp:datagridid="DataGrid1"runat="server" OnSortCommand="SortGrid"BorderStyle="None"BorderWidth="1px" BorderColor="#CCCCCC"BackColor="White"CellPadding="5"AllowSorting="True"> <HeaderStyleFont-Bold="True"ForeColor="White" BackColor="#006699"> </HeaderStyle> </asp:datagrid> </P> </form> </body> </HTML> <scriptrunat="server"> '在ViewState中跟踪SortField属性 Get Set(ValueAsString) EndProperty '在ViewState中跟踪SortAscending属性 Get Set(ValueAsBoolean) EndProperty PrivateSubPage_Load(senderAsObject,eAsEventArgs)HandlesMyBase.Load IfNotPage.IsPostBackThen EndSub SubBindGrid() '获取数据 DimdvAsNewDataView(ds.Tables(0)) '应用排序过滤器和方向 '绑定网格 EndSub PrivateSubSortGrid(senderAsObject,eAsDataGridSortCommandEventArgs) </script> |
[C#]
<%@PageLanguage="C#"%> <%@ImportNamespace="System.Data"%> <HTML> <HEAD> <title>用于页面UI状态值的ViewState</title> </HEAD> <body> <formrunat="server"> <H3> 在ViewState中存储非控件状态 </H3> <P> 此示例将一列静态数据的当前排序顺序存储在ViewState中。<br> 单击列标题中的链接,可按该字段排序数据。<br> 再次单击该链接,将按相反顺序排序。 <br><br><br> <asp:datagridid="DataGrid1"runat="server"OnSortCommand="SortGrid" BorderStyle="None"BorderWidth="1px"BorderColor="#CCCCCC" BackColor="White"CellPadding="5"AllowSorting="True"> <HeaderStyleFont-Bold="True"ForeColor="White"BackColor="#006699"> </HeaderStyle> </asp:datagrid> </P> </form> </body> </HTML> <scriptrunat="server"> //在ViewState中跟踪SortField属性 get{ set{ //在ViewState中跟踪SortAscending属性 get{ set{ voidPage_Load(objectsender,EventArgse){ if(!Page.IsPostBack){ voidBindGrid(){ //获取数据 DataViewdv=newDataView(ds.Tables[0]); //应用排序过滤器和方向 //绑定网格 voidSortGrid(objectsender,DataGridSortCommandEventArgse){ DataGrid1.CurrentPageIndex=0; </script> |
下面是上述两个代码段中引用的testdata.xml的代码:
<?xmlversion="1.0"standalone="yes"?> |
评论 (0) All