隐藏控件--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 ...
随机推荐
- LeetCode(8):字符串转整数(atoi)
Medium! 题目描述: 实现 atoi,将字符串转为整数. 在找到第一个非空字符之前,需要移除掉字符串中的空格字符.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合 ...
- Laravel 的文件存储 - Storage
记录一下 Laravel Storage 的常见用法 内容写入磁盘文件 > php artisan tinker >>> use Illuminate\Support\Faca ...
- jquery----扩展事件
常用事件 blur([[data],fn]) 失去焦点 focus([[data],fn]) 获取焦点( 搜索框例子) change([[data],fn]) 当select下拉框中的元素发生改变的时 ...
- hdu4190 二分答案
/*二分答案即可*/ #include<bits/stdc++.h> #define maxn 500005 #define ll long long #define INF 500000 ...
- hdu5289 ST表+二分
用裸的St表+暴力枚举查询时稳TLE的,可以枚举每个区间的起点+二分满足条件的区间右端,这样复杂度是O(nlogn) #include<iostream> #include<cstr ...
- JAVA开发工程师面试(1)
我已经有很长一段时间没有更新博客了,难道是博主我变懒惰了吗?哎,这样可不行啊,我还有好多知识要学习,要和大家分享.以后我需要更加努力,改掉自己的惰性.本人文采不怎么样,只能是把自己所想的说出来,想和大 ...
- visual studio 2015百度云下载
visual studio 2015百度云下载 https://pan.baidu.com/s/1b198Zo3mX5_zA2VX3xRRfw 提取码: 关注公众号[GitHubCN]回复2015获取
- day8--socket文件传输
FTP server 1.读取文件名 2.检测文件是否存在 3.打开文件 4.检测文件大小(告诉客户端发送文件的大小) 5.发送文件大小和MD5值给客户端,MD5 6.等待客户端确认(防止粘包) 7. ...
- 记录一个mysql的case when用法
SELECT wle.*, CASE WHEN '2017-08-10 14:00:00' > wle.et THEN '回看' WHEN wle.st >= '2017-08-10 14 ...
- 【java并发核心二】Exchanger的使用
类 Exchanger 的功能可以使2个线程之间传输数据,比生产者/消费者模式方便. Exchanger类的结构很简单,重点就是exchange()方法. exchange()方法是阻塞执行的,可以设 ...