Hiddenfield控件

本文转自:http://www.cnblogs.com/weicleer/archive/2012/11/26/2788722.html

  ASP.NET2.0 HiddenField控件(1)2007-05-12 23:18HiddenField控件顾名思义就是隐藏输入框的服务器控件,它能让你保存那些不需要显示在页面上的且对安全性要求不高的数据。也许这个时候应该有这么一个疑问,为什么有了ViewState、Session和Cookie等状态保存机制,还需要用起HiddenField呢? 
增加HiddenField,其实是为了让整个状态管理机制的应用程度更加全面。因为不管是ViewState、Cookie还是Session,都有其失效的时候,比如用户因某种需求要求设置ViewState为false,或者环境条件限制使用Cookie,或者用户长时间没有动作导致Session过期等等,那这个时候HiddenField无疑是最佳选择。 
   
  HiddenField控件的作用简单的说是用于存储需要在向服务器的发送间保持的值。它作为 <input type= "hidden"/> 元素呈现,并且通过添加runat=”server”就可以使它成为标准的HTML服务器控件。下面列出的是ASP.NET HiddenField Web服务器控件可以使用的属性和事件。

 <asp:HiddenField
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    OnValueChanged="ValueChanged event handler"
    runat="server"
    SkinID="string"
    Value="string"
    Visible="True|False"
   />    

因为 HiddenField 的值将呈现给客户端浏览器,所以它不适用于存储安全敏感的值。若要为 HiddenField 控件指定值,请使用 Value 属性,请注意是Value而不是Text。事实上HiddenField并没有Text属性,这和DropDownList、CheckBoxList等标准按钮的属性命名方式一致。在标准的属性命名方式中,Text的值是呈现给用户看到的,而Value的值则是通长是通过代码进行控制的。例如你可以让DropDownList的Text属性显示用户名而让它的Value存储用户的编号。 
    下面的代码显示的是改控件的基本使用。

 <html>
   <head>
    <script language="C#" runat="server">
    void Button1_Click(object sender, EventArgs e)
    {
    if (HiddenField1.Value == String.Empty)
    HiddenField1.Value = "0"; 

    HiddenField1.Value = (Convert.ToInt32(HiddenField1.Value)+1).ToString();
    Label1.Text = HiddenField1.Value;
    }
    </script>
   </head>
   <body>
    <h3><font face="Verdana">HiddenField</font></h3>
    <form runat=server>
    <asp:HiddenField id=HiddenField1 runat=Server />
    <asp:Button id=Button1 Text="单击按钮" onclick="Button1_Click" runat="server" />
    单击 <asp:Label id=Label1 Text="0" runat=server /> 次
    </form>
    </body>
   </html> 

在上面代码中, <asp:HiddenField id=HiddenField1 runat=Server />就定义了一个隐藏控件在按钮的单击事件里计算用户单击的次数,并将改次数赋值给Label1。 
   
    你可以将上面代码中的 <asp:HiddenField id=HiddenField1 runat=Server />改为<input type=hidden id=HiddenField1 runat=Server >也是可以的 
   
   在使用上面代码里,如果你从浏览器里查看源代码会得到如下的信息: 
   <form name="Form1" method="post" action="Default.aspx" id="Form1"> 
    这是因为HiddenField是通过HTTP协议进行传递数据的,所以如果你通过" method="get"或者链接打开新的窗体页,那么HiddenField并不可用。 
    另外,HiddenField并不是取代Session来维护状态的,在上面例子里,虽然你点击一次按钮可以显示你点击的次数但是并不是说它可以记录你的状态信息。如果你重新打开浏览器那么你看到的此处仍然是0而不是3。 
   
   HiddenField事件 
    HiddenField较为常用的是ValueChanged事件,该事件在Value值发生改变时触发该事件。然而在实际使用时,要知道页面记载顺序。在页面回传过程中,具体的页面周期你可以到如下网站查看 
   http://msdn2.microsoft.com/zh-cn/library/ms178472.aspx 
    下面的例子说明了这个问题

  <head>
   <script runat="server" language="c#">
    protected void Page_Load(object sender, EventArgs e)
    {      Response.Write("<p>页面的Page_Load事件触发,触发时间是:" + DateTime.Now.ToString());
      if (HiddenField1.Value == String.Empty)
      HiddenField1.Value = "0";   } 

    protected void Button1_Click(object sender, EventArgs e) 

    {      Response.Write("<p>Button1_Click为改变Hidden的值前事件触发,触发时间是:" + DateTime.Now.ToString());
      HiddenField1.Value = (Convert.ToInt32(HiddenField1.Value) + 1).ToString();
      Label1.Text = HiddenField1.Value; 

    } 

    protected void HiddenField1_ValueChanged(object sender, EventArgs e) 

    {     Response.Write("<p>HiddenField的 ValueChanged事件触发,触发时间是:" + DateTime.Now.ToString());    } 

   </script>
   </head> 

   <body> 

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

    <div> <asp:HiddenField ID="HiddenField1" runat="server" OnValueChanged="HiddenField1_ValueChanged" /> 

    </div> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 

    <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 

    </form></body> 

   </html>
时间: 2024-10-26 16:46:27

Hiddenfield控件的相关文章

(转)HiddenField控件的使用

ASP.NET2.0 HiddenField控件(1)2007-05-12 23:18HiddenField控件顾名思义就是隐藏输入框的服务器控件,它能让你保存那些不需要显示在页面上的且对安全性要求不高的数据.也许这个时候应该有这么一个疑问,为什么有了ViewState.Session和Cookie等状态保存机制,还需要用起HiddenField呢?    增加HiddenField,其实是为了让整个状态管理机制的应用程度更加全面.因为不管是ViewState.Cookie还是Session,都

ASP.NET中,HiddenField隐藏控件的用法

HiddenField控件就是隐藏输入框的服务器控件,他能让你保存那些不必显示在页面上的且对安全性需求不高的数据.也许这个时候应该有这么一个疑问,为什么有了ViewState.Session和Cookie等状态保存机制,还需要用起HiddenField呢? 增加HiddenField,其实是为了让整个状态管理机制的应用程度更加全方面.因为不管是ViewState.Cookie还是Session,都有其失效的时候,比如用户因某种需求设置ViewState为false,或环境条件限制使用Cookie

Webform(简单控件、复合控件)

一.简单控件: 1.label控件 <asp:Label ID="Label1" runat="server" Text="账 号:"></asp:Label> 被编译为: <span id="Label1" >账 号:</span> 属性: Text:文本ForeColor:字体颜色Visible:是否可见CssClass:即HTML的class 2.Literal 类似lab

表单元素,简单控件,复合控件

十二个表单元素: 文本类: <input type="text" />//普通的文本框 <input type="password" />//密码框 <textarea><textarea />//可多行编辑的文本域 <input type="hidden" />//隐藏域 选择类: <input type="radio" id="i" /&

用户控件与页面间相互给各自的控件赋值

用户控件 ->页面 ((Label)this.Parent.Page.FindControl("AAA")).Text = "ABC"; AAA:页面控件ID Label:页面控件类型 页面 -> 用户控件 ((HiddenField)POPUSER_1.FindControl("hidNO")).Value = "VNBB"; POPUSER_1:用户控件ID HiddenField:用户控件中需要处理的控件的类

webform简单控件和Repeater的使用

(一) <%@ %> - 这里面写一些声明和引用的 <%  %> - 编写C#代码的 <%= %> - 往界面上输出一个变量的值 <%# %> - 在Repeater数据展示中使用 (二)Repeater  数据展示 1.HeaderTemplate ---  先执行,执行一次 FooterTemplate --- 后执行,执行一次 ItemTemplate --- 在Header之后执行,有多少条数据绑定就执行多少次 AlterNatingItemTemp

web端 repeat和简单控件

<%@ %> - 这里面写一些声明和引用的<% %> - 编写C#代码的<%= %><%# %> Repeater - 重复器     相当于winform的listviewHeaderTemplate - 先执行,执行一次FooterTemplate - 最后执行,执行一次ItemTemplate - 在Header之后执行,有多少条数据绑定就执行多少次 AlterNatingItemTemplate - 交替项模板,与ItemTemplate交替执行 &

【2017-05-18】WebForm的Repeater控件和一些简单控件

一.Repeater控件 1. <%@ %> - 这里面写一些声明和引用的 <%  %> - 编写C#代码的 <%= %> - 往界面上输出一个变量的值 <%# Eval("属性名","可选,格式字符串")%> - 在Repeater数据展示中使用 2.Repeater控件   - 用来展示数据重复执行. <HeaderTemplate></HeaderTemplate>     先执行,执行一

webform简单控件

表单元素: 文本类: text password textarea hidden text,password,textarea实现控件:textbox   textmode属性选择password或multiline或singleline textmode的multiline对应textarea textmode的singleline对应text 可以对应text设置最大长度maxlength,而对于textarea无此项 隐藏域hidden对应控件为hiddenfield,用value可以对其