当前位置: 首页 > 编程笔记 >

ASP.NET中HiddenField隐藏域控件的使用方法

寿伟
2023-03-14
本文向大家介绍ASP.NET中HiddenField隐藏域控件的使用方法,包括了ASP.NET中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存储用户的编号。

一、HiddenField控件的基本使用

<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事件ValueChanged

HiddenField较为常用的是ValueChanged事件,该事件在Value值发生改变时触发该事件。然而在实际使用时,要知道页面记载顺序。在页面回传过程中,具体的页面周期你可以到如下网站查看
http://msdn2.microsoft.com/zh-cn/library/ms178472.aspx

下面的例子说明了这个问题


<html>

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

三、用javascript把值传给HiddenField

javascript直接改变控件的值再后台取不到值,存在HiddenField中变相的取值,代码如下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>无标题页</title>

    <script type="text/javascript">

    function setValue(){

        document.getElementById("<%=name.ClientID %>").value="aaaa";

    }

    </script>

</head>

<body>

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

    <div>

    <asp:HiddenField ID="name" runat="server" />

        <asp:Button ID="Button1" runat="server" Text="Button" 

            OnClientClick="setValue()" onclick="Button1_Click" />

    </div>

    </form>

</body>

</html>


 类似资料:
  • 本文向大家介绍ASP.NET中 Wizard 控件的使用方法,包括了ASP.NET中 Wizard 控件的使用方法的使用技巧和注意事项,需要的朋友参考一下 先来看看官方介绍 使用表单收集用户输入是 Web 开发中要反复执行的一项任务。用来完成某项任务的一组表单通常称为“向导”。ASP.NET Wizard 控件简化了许多与生成多个表单和收集用户输入相关联的任务。Wizard 控件提供了一种简单的机

  • 本文向大家介绍ASP.NET中 PlaceHolder 控件的使用方法,包括了ASP.NET中 PlaceHolder 控件的使用方法的使用技巧和注意事项,需要的朋友参考一下 使用 PlaceHolder 控件可以将空容器控件放到网页中,然后在运行时动态添加、删除或遍历各子元素。该控件只呈现其子元素;它本身并没有基于 HTML 的输出。 在实际使用过程中可以向PlaceHolder添加任何Html

  • 本文向大家介绍ASP.NET中 Panel 控件的使用方法,包括了ASP.NET中 Panel 控件的使用方法的使用技巧和注意事项,需要的朋友参考一下 Panel 控件在 ASP.NET 网页中提供一种容器控件,可以将它用作静态文本和其他控件的父控件。 一、常见 Panel 属性 属性 描述 HorizontalAlign 指定子控件在面板内的对齐方式(左对齐、右对齐、居中或两端对齐)。 Wrap

  • 本文向大家介绍JS中input表单隐藏域及其使用方法,包括了JS中input表单隐藏域及其使用方法的使用技巧和注意事项,需要的朋友参考一下 一、表单隐藏域 隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的。当表单被提交时,隐藏域就会将信息用你设置时定义的名称和值发送到服务器上。 代码格式: 属性解释: type=”hidden”定义隐藏域; name属性定义隐藏域的名

  • 问题内容: 我对Web开发 非常 陌生,但是总体上有很多开发经验。我有一个ASP页,其中包含一些输入字段和一个提交按钮。这个提交按钮纯粹调用$ .ajax,我打算在代码隐藏文件中调用一个方法。但是,我注意到了两个有趣的事情。首先,无论向其提供了什么数据,ajax调用都会成功。其次,responseText字段是整个页面的html源。 我已经阅读了此文章以及其他指向webconfig的文章,但是这些

  • 本文向大家介绍ASP.NET MVC中图表控件的使用方法,包括了ASP.NET MVC中图表控件的使用方法的使用技巧和注意事项,需要的朋友参考一下 微软发布了一个强大的ASP.NET的图表控件,支持丰富的图表选项设置-包括列,点,泡沫,饼图,圆环图,金字塔,漏斗,盒形图,面积,范围,AJAX的互动,以及更多。Microsoft图表控件示例项目包括ASP.NET页的图表样本超过200个。在这篇文章中