首页


ASP .NET教程

  • ASP .NET简介
  • ASP与ASP .NET
  • 安装ASP .NET
  • ASP .NET网页
  • ASP .NET控件
  • ASP .NET事件
  • ASP .NET表单

  • ASP .NET Form
  • ASP .NET ViewState
  • asp:TextBox
  • asp:Button
  • ASP.NET绑定

  • 数据绑定
  • ArrayList
  • Hashtable
  • SortedList
  • XML文件
  • asp:Repeater
  • asp:DataList
  • ASP.NET数据库

  • 数据库连接
  • 手册

  • HTML控件
  • Web控件
  • 验证控件
  • 示例

  • ASP .NET示例

  • ASP .NET维持ViewState

    [前一节] [后一节]

    通过维持Web表单中的对象的ViewState你可能会省去不少编码工作。


    维持ViewState

    在传统ASP中,当一个表单被提交的时候所有表单值都被清除。假设你提交了一个有很多信息的表单并且服务器返回一个错误。你不得不返回到表单并更正信息。你点击返回按钮,但是发生了什么……。所有表单值被清除了,你将不得不从头开始!站点没有维持你的ViewState.

    在ASP .NET中提交一个表单的时候,表单与所有的表单值一起再现于浏览器窗口。怎么会这样?这是因为ASP .NET维持你的ViewState。ViewState指明页面被提交到服务器时的状态。该状态是通过在每个带有<form runat="server">控件的页面中安置一个隐含域来定义的。源文件可能看起来象是这样:

    <form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
    <input type="hidden" name="__VIEWSTATE"
    value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
    .....some code
    </form>

    对ASP.NET Web表单维持ViewState是默认设置。 如果你想要维持ViewState,可以在.aspx页面顶部包含指示:<%@ Page EnableViewState="false" %>,或者对任何控件加入属性:EnableViewState="false"。

    请看下面的.aspx文件。它演示了“老方式“的做法。当你点击提交按钮,表单值将会消失:

    <html>
    <body>
    <form action="demo_classicasp.aspx" method="post">
    Your name: <input type="text" name="fname" size="20">
    <input type="submit" value="Submit">
    </form>
    <%
    dim fname
    fname=Request.Form("fname")
    If fname<>"" Then
    Response.Write("Hello " & fname & "!")
    End If
    %>
    </body>
    </html>

    这是新的ASP .NET方式。当你点击提交按钮的时候,表单值将消失:

    <script runat="server">
    Sub submit(sender As Object, e As EventArgs)
    lbl1.Text="Hello " & txt1.Text & "!"
    End Sub
    </script>
    <html>
    <body>
    <form runat="server">
    Your name: <asp:TextBox id="txt1" runat="server" />
    <asp:Button OnClick="submit" Text="Submit" runat="server" />
    <p><asp:Label id="lbl1" runat="server" /></p>
    </form>
    </body>
    </html>

    (在浏览器中选择查看源文件,会看到ASP .NET已经在表单中添加了一个隐含域来维持ViewState)。


    [前一节] [后一节]


    本站教程均为老猫根据外文资料翻译整理,将逐步刊出。此版本内容保证国内绝无仅有,由于时间、水平有限,有不妥之处欢迎指正。

    如果能对您有所帮助,敬请赞助,老猫不胜感激!

    1. 网上乞讨:
    在您任何方便的时候,向以下帐号存入10元人民币(当然越多越好)。
    交通银行太平洋卡
    601428 7091 5592604

    2. 广告投放:
    在任何指定页面投放各种形式广告,价格优惠。

    3. 代为宣传:
    以任何形式向您的亲朋好友推荐。

    Copyright © Tom.s Online 2003-2004