隐藏控件--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 ...
随机推荐
- python易错题之作用域
name = "lzl" def f1(): print(name) def f2(): name = "eric" f1() f2() //结果为 lzl 记 ...
- pytest五:fixture_autouse=True
平常写自动化用例会写一些前置的 fixture 操作,用例需要用到就直接传该函数的参数名称就行了.当用例很多的时候,每次都传返个参数,会比较麻烦.fixture 里面有个参数 autouse,默讣是 ...
- ORA-12638: 身份证明检索失败 的解决办法
今天在使用应用程序连接Oracle时碰到了 “ORA-12638: 身份证明检索失败” 错误, 解决方法:这是因为Oracle-client端的高级安全性验证导致,解决办法如下: 开始 -> 程 ...
- 如何将自己的Image镜像Push到Docker Hub
首先需要一个docker官方账号 这里我添加了一个AspNetCore程序 通过创建了一个镜像(前面提过使用Dockerfile处理了) docker build -t dockertest . 首先 ...
- bzoj3758. 数数
题解: 一波优秀的打表技巧 分块打表,分成1000组,打表打出来 另外10^6暴力算
- HDU1512 ZOJ2334 Monkey King 左偏树
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - ZOJ2334 题目传送门 - HDU1512 题意概括 在一个森林里住着N(N<=10000)只猴子. ...
- java中关于重载与重写的区别
1.重载 允许多个同名但是形式参数个数或参数类型不同的方法存在同一个类中,在调用时根据形式参数列表来调用对应的方法. 2.判断 (1):方法名必须相同. (2):形式参数个数不同或者参数类型不同(满足 ...
- Python3 图像边界识别
# -*- coding: utf-8 -*- """ Created on Wed Mar 7 11:04:15 2018 @author: markli " ...
- iOS 技术篇:从使用到了解block底层原理 (一)
1.概述 block : Object - C对于闭包的实现 . 闭包 = 一个函数(或是指向函数的指针) +该函数执行的外部的上下文变量(自由变量) 2.对block的理解 可以嵌套定义,定义 bl ...
- postcss那些事儿
一.sass和postcsssass.less.stylus,三者是css预处理器,使用预编码来处理css,然后编译成线上需要的css.postcss是处理你写好的css,让你的css更健康,对浏览器 ...