科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件ASP.NET2.0中使用HiddenField控件(2)

ASP.NET2.0中使用HiddenField控件(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍ASP.NET 2.0中使用HiddenField控件——HiddenField控件顾名思义就是隐藏输入框的服务器控件,它能让你保存那些不需要显示在页面上的且对安全性要求不高的数据。

作者:动态网站制作指南 来源:动态网站制作指南 2007年9月2日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
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>



在这个例子里,我们想要的结果是:当用户单击按钮时,通过按钮的Button1_Click事件更改HiddenField1的Value,然后再触发HiddenField1的HiddenField1_ValueChanged事件,然而事实真的如此吗?

运行上面的代码,得到的结果正如你看到的,每次单击时,Button确实改变了HiddenField的值,但是我们在HiddenField1_ValueChanged里定义的输出并没有执行,换句话说页面并没有执行ValueChanged事件。

要理解这个问题还需要了解页面的声明周期,在页面周期过程中,你可以看到在Page_Init里是读取或初始化控件属性,然后再是Control events。

这里的事件意思是说: 在Page_Init事件里,Web页面会接受用户回传的数据,例如将 <span id="Label1">Label</span>赋值给ID为Label1的Text属性,将 <input type="hidden" name="HiddenField1" id="HiddenField1" value="0" />的value值赋值给HiddenField1的Value属性。等所有初始化完毕了,页面才开始执行控件的事件--Button1_Click,在Button事件里将HiddenField的Value值改变。那么这里既然已经将Value值改变为什么没有执行ValueChanged事件呢?
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章