隐藏控件--HiddenField控件
HiddenField控件百度查的结果(帮助大家对比理解):
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服务器控件可以使用的属性和事件。
因为 HiddenField的值将呈现给客户端浏览器,所以它不适用于存储安全敏感的值。若要为 HiddenField控件指定值,请使用 Value 属性,请注意是Value而不是Text。事实上HiddenField并没有Text属性,这和DropDownList、CheckBoxList等标准按钮的属性命名方式一致。在标准的属性命名方式中,Text的值是呈现给用户看到的,而Value的值则是通长是通过代码进行控制的。例如你可以让DropDownList的Text属性显示用户名而让它的Value存储用户的编号。
当然它的作用还不只这些,下面是做系统时的应用!
在项目中的应用:
大家先来看看代码:
web端:
<asp:Repeater ID="repStudent" runat="server">
<ItemTemplate>
<tr>
<td align="center" >
<td align="center" > <asp:CheckBox ID="chkStu" runat="server" />
<asp:HiddenField ID="hidKey2" runat="server" Value='<%# Eval("StudentCode")+","+Eval("ExecutiveClassName")+","+Eval("StudentName")+","+Eval("CollegeName")+","+Eval("DepartmentName")+","+Eval("CollegeName") %>' /></td>
</td>
<td class="txt c"><%#Eval("StudentCode") %></td>
<td class="txt c"><%#Eval("StudentName") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
后台的获取:
//repStudent绑定的是从数据库中查出的datatable值
//遍历所有的复选框,如果被选中则对应的授课关系将被删除
foreach (RepeaterItem ri in repStudent.Items)
{
cb = ri.FindControl("chkStu") as CheckBox;
if (cb.Checked == true)
{
hidKey = ri.FindControl("hidKey2") as HiddenField;
string strKey = hidKey.Value;
string[] keyList = strKey.Split(',');
string StudentNo = keyList[0];
string ExecutiveClassName = keyList[1];
string StudentName = keyList[2];
string CollegeName = keyList[3];
string GradeName = keyList[4];
//string DepartmentName= keyList[5];
//新建实体类对象 //Model.StudentInfoEntity enStudent = new StudentInfoEntity();
dtStu.Rows.Add(StudentNo,StudentName,CollegeName,ExecutiveClassName,GradeName,examID,examRoom); }
}
为什么要这样使用呢?为什么要用HiddenField控件呢(当然可能有更好的办法)?
原因:首先,我需要从数据库中查出数据,有很多字段,但是在界面只需要显示其中的两三个,但问题是,我需要将
其他不显示的字段更新到其他表中,如果我直接绑定显示的值,那么其他字段值就找不到了,还需要去查,可能更麻烦,但是应用HiddenField控件,我可以在web层绑定所有我需要的不显示滴字段,然后到后台获取到HiddenField控件绑定的值,将这些值赋给实体,去更新其他数据库表。
当然这也不一定是最好的解决办法,而且HiddenField控件的功能也不仅如此,这些还需要我们在实践过程中不断应用,不断实践,在这里只是给大家提供一种方式,也是记录一下自己对HiddenField的认识。
如果对于我上面提到的问题,大家有更好的解决办法,希望大家提宝贵意见!共同学习!
隐藏控件--HiddenField控件的更多相关文章
- 隐藏控件HiddenField使用
HiddenField控件顾名思义就是隐藏输入框的服务器控件,它能让你保存那些不需要显示在页面上的且对安全性要求不高的数据. 增加HiddenField,其实是为了让整个状态管理机制的应用程度更加全面 ...
- (转)HiddenField控件的使用
ASP.NET2.0 HiddenField控件(1)2007-05-12 23:18HiddenField控件顾名思义就是隐藏输入框的服务器控件,它能让你保存那些不需要显示在页面上的且对安全性要求不 ...
- Hiddenfield控件
本文转自:http://www.cnblogs.com/weicleer/archive/2012/11/26/2788722.html ASP.NET2.0 HiddenField控件(1)2007 ...
- Silverlight Visifire控件 .net后台控制aspx页面控件的显示与隐藏,动态给控件赋值,选定默认值的设定
.net后台代码: 控件的显示与隐藏: this.dateStart.Visibility = Visibility.Collapsed;//不显示控件 this.dateYear.Visibilit ...
- 隐藏和显示服务器端控件以及Html控件
隐藏和显示服务器端控件以及Html控件 /// <summary> /// 隐藏控件 /// </summary> /// <param name="contr ...
- [摘]ASP.Net标准控件(TextBox控件)
TextBox控件 TextBox控件又称文本框控件,为用户提供输入文本的功能. 1.属性 TextBox控件的常用属性及说明如表1所示. 表1 TextBox控件常用属性及说明 属 性 说 ...
- ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件
原文:ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件 Login控件它是属于Membership服务的一部分,必须配置Membership提供程 ...
- Silverlight中获取控件中子控件
如题:,直接来看代码: /// <summary> /// 查找并返回第一个 相同 name的子元素 /// </summary> /// <typeparam name ...
- WPF进阶技巧和实战03-控件(1-控件及内容控件)
所有控件都继承自System.Windows.Controls.Control类,这个类添加一些基本结构: 设置控件内容对齐方式 (HorizontalContentAlignment,Vertica ...
随机推荐
- 测试开发之前端——No4.HTML5中的事件属性
HTML5的事件属性. 属性 值 描述 onafterprint script 在打印文档之后运行脚本 onbeforeprint script 在文档打印之前运行脚本 onbeforeonload ...
- Stanford CS231n - Convolutional Neural Networks for Visual Recognition
网易云课堂上有汉化的视频:http://study.163.com/course/courseLearn.htm?courseId=1003223001#/learn/video?lessonId=1 ...
- lnmp创建站点
一.创建站点 1.输入命令 lnmp vhost add 输入域名 www.xxx.com 回车 回车 回车 y创建 n不创建 网站如果有目录权限 更改目录权限 chown -R www:www /h ...
- MySQL----数据库操作2
数据库高级操作: SHOW DATABASES; 显示数据库 CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci CR ...
- 性能测试六:jmeter进阶之Cookie与header管理器
一.http cookie管理器 可以在浏览器中抓取到cookie信息,然后通过http cookie管理器为http请求添加cookie信息 添加cookie管理器后,Jmeter可以自动处理coo ...
- 文件中用WriteLine追加内容的两种方法
if (!Directory.Exists("C:\\testll")) { Directory.CreateDirectory("C:\\testll"); ...
- STL算法之函数copy
STL算法之copy copy(beg, end, dest) #include <iostream> #include <algorithm> #include <ve ...
- Hibernate api 之常见的类(配置类,会话工厂类,会话类)
1:Configuration :配置管理类对象 1.1:config.configure(): 加载主配置文件的方法(hibernate.cfg.xml) ,默认加载src/hibernate.cf ...
- Quratz入门
一:介绍 1.应用场景 基本上任何公司都会用到调度这个功能, 比如我们公司需要定期执行调度生成报表, 或者比如博客什么的定时更新之类的,都可以靠Quartz来完成.正如官网所说,小到独立应用大到大型电 ...
- 打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )
此文章参考<深入理解计算机系统>P31. 先看如下代码: 12345的十六进制表示为:0x00003039 #include <stdio.h> int main() { ; ...