返回首页
当前位置: 主页 > asp.net专栏 >

ASP.NET - HiddenField Web 服务器控件概述

时间:2010-06-01 14:38来源:未知 作者:admin 点击:
HiddenField 控件提供了一种在页面中存储信息但不显示信息的方法。例如,可以在 HiddenField 控件中存储用户首选项设置,以便可以在客户端脚本中读取此设置。若要将信息放入 HiddenFiel

HiddenField 控件提供了一种在页面中存储信息但不显示信息的方法。例如,可以在 HiddenField 控件中存储用户首选项设置,以便可以在客户端脚本中读取此设置。若要将信息放入 HiddenField 控件中,请在两次回发之间将其 Value 属性设置为要存储的值。

 

一、功能

可以使用 HiddenField 控件执行下列操作:

·在页上的隐藏字段中存储数据。

·检测存储在隐藏字段中的数据何时在回发之间发生更改。

 

二、背景

当浏览器呈现页面时,不会显示 HiddenField 控件中的信息。但可以在客户端脚本中读取和设置此信息。回发页时,HiddenField 控件的内容在服务器代码中可用,该控件包括客户端脚本中所做的任何更改。

说明: 虽然不显示隐藏字段中的信息,但用户可通过查看页面的源来查看此控件的内容。不要在 HiddenField 控件中存储敏感信息,如用户 ID、密码或信用卡信息。

 

检测已更改的数据:

在将页面回发到服务器之前,可以更改 HiddenField 控件的值。由于使用隐藏字段在服务器代码和客户端脚本之间共享信息,并且客户端脚本已更新了控件的值,因此可能发生上述情况。

为了帮助您检测控件中的数据更改,HiddenField 控件会引发 ValueChanged 事件,即使此控件的值在回发之间发生了更改。您可以处理此事件来确定值是否已发生更改。

 

三、HiddenField 类

      HiddenField 控件用于存储一个值,在向服务器的各次发送过程中,需保持该值。它呈现为 <input type= "hidden"/> 元素。

通常情况下,Web 窗体页的状态由视图状态、会话状态和 cookie 来维持。但是,如果这些方法被禁用或不可用,则可以使用 HiddenField 控件来存储状态值。

若要指定 HiddenField 控件的值,请使用 Value 属性。您可以提供这样一个例程,每次由于创建 ValueChanged 事件的事件处理程序,而在向服务器的各次发送过程中更改 HiddenField 控件的值时,都会调用该例程。

 

示例

下面的示例演示在向服务器的各次发送过程中,如何使用 HiddenField 控件存储 TextBox 控件的值。

安全说明: 此示例有一个接受用户输入的文本框,这是一个潜在的安全威胁。默认情况下,ASP.NET 网页验证用户输入是否不包括脚本或 HTML 元素。

<%@ Page language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

 

  void ValueHiddenField_ValueChanged (Object sender, EventArgs e)

  {

 

    // Display the value of the HiddenField control.

    Message.Text = "The value of the HiddenField control is " + ValueHiddenField.Value + ".";

 

  }

 

</script>

 

<html  >

    <head runat="server">

    <title>HiddenField Example</title>

</head>

<body>

        <form id="Form1" runat="server">

 

            <h3>HiddenField Example</h3>

 

            Please enter a value and click the submit button.<br/>

 

            <asp:Textbox id="ValueTextBox"

              runat="server"/>

 

            <br/> 

 

            <input type="submit" name="SubmitButton"

             value="Submit"

             onclick="PageLoad()" />

 

            <br/>

 

            <asp:label id="Message" runat="server"/>   

 

            <asp:hiddenfield id="ValueHiddenField"

              onvaluechanged="ValueHiddenField_ValueChanged"

              value=""

              runat="server"/>

 

        </form>

    </body>

</html>

 

<script type="text/javascript">

 

  <!--

  function PageLoad()

  {

 

    // Set the value of the HiddenField control with the

    // value from the TextBox.

    Form1.ValueHiddenField.value = Form1.ValueTextBox.value;

 

  }

  -->

 

</script>
-

资料引用:http://www.knowsky.com/540124.html

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐赞助商
推荐内容