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) |