放飞你的梦想--翱翔我的天空 | 会员登陆 | 繁體中文 | 站点地图 | 站长博客
 | 网站首页 | 文章中心 | IT 前沿 | 清怡画风 | 视频教程 | 资源下载 | 精彩图库 | 博客文赏 | 天空论坛 | 访客留言 | 音乐版 | 
    本站全新推出IT 前沿频道欢迎大家访问 地址 http://it.tkbbs.com  [风雪残士  2005年12月9日]            本站推出新浪VIVI收藏夹服务,欢迎使用  [风雪残士  2005年10月18日]        
您现在的位置: 翱翔翼站 >> 文章中心 >> 编程开发 >> 网页开发 >> ASP编程 >> 文章正文 今天是:
ASP.NET 2.0中使用HiddenField控件 【字体:
作 者:佚名 文章来源:网络 更新:2006-4-16 18:21:30 点击:







HiddenField控件顾名思义就是隐藏输入框的服务器控件,它能让你保存那些不需要显示在页面上的且对安全性要求不高的数据。也许这个时候应该有这么一个疑问,为什么有了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。

[1] [2] 下一页



文章录入:风雪残士    责任编辑:风雪残士 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    最新文章 TOP10
    最新热门 TOP10
    最新推荐TOP10
    翱翔翼站拥有本站所有版权! Copyright © 2005 - 2008 5-IT.COM
    本站维护 :风雪残士

    浙ICP备05039908号
    努力打造国内最全的电脑技术资料库