ASP.NET 中TextBox设置ReadOnly="true" 无法取到值的做法
当 TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空”
原理没想通,说不清楚微软是出于什么考虑的,https://www.cnblogs.com/jishufangui/archive/2012/08/22/2651257.html
不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内容,这时就比较尴尬了。
刚开始是换成Html 里的 <input type="text" readonly="readonly" > ,不过后来发现这个工作量是很大的,
在.NET 2.0 下,当页面上的某个TextBox 设置了属性ReadOnly="True"时,通过客户端脚本给其赋值后,在后台代码中访问其Text属性却无法获得该值。经过尝试,发现可以通过如下的方式解决这个问题:
1、不设置ReadOnly属性,通过οnfοcus=this.blur()来模拟,如下:
<asp:TextBox ID="TextBox1" runat="server" οnfοcus=this.blur()></asp:TextBox>
在此情况下,当文本框获得焦点时便立刻失去,所以也无法手动修改其内容,能够模拟ReadOnly,在后台代码中也能通过Text属性,正常获取通过脚本在客户端设置的值;
2、设置了ReadOnly属性后,通过Request来取值,如下:
前台代码:
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>
后台代码:
string Text = Request.Form["TextBox1"].Trim();
3、在Page_Load()正设置文本框的只读属性,能正常读取,如下:
protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            TextBox1.Attributes.Add("readonly","true");
        }
    }
ASP.NET 中TextBox设置ReadOnly="true" 无法取到值的做法的更多相关文章
- C#中TextBox设置readonly不能读取数据问题
		在ASP.NET中前端设置控件TextBox的属性为Readonly="True"时,如果之前有设定初始值,或通过JS方式给其赋值后,在后台访问其Text值却无法获取,这种问题的解 ... 
- .NET中TextBox控件设置ReadOnly=true后台取不到值的解决方法
		在.NET 2.0 下,当页面上的某个TextBox 设置了属性ReadOnly="True"时,通过客户端脚本给其赋值后,在后台代码中访问其Text属性却无法获得该值.经过尝试, ... 
- .NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法
		当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下 当TextB ... 
- .NET中TextBox控件设置ReadOnly=true后台取不到值  三种解决方法
		方法一:不设置ReadOnly属性,通过onfocus=this.blur()来模拟,如下: <asp:TextBox ID="TextBox1" runat="s ... 
- TextBox控件设置ReadOnly=true后台取不到值三种解决方法(转)
		当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下当TextBo ... 
- .net TxetBox控件设置ReadOnly=True后台取值问题
		1.为TxetBox添加onfocus=this.blur()进行模拟 2.通过 Request.From["TextBox"].Trim()取值; 3.后台CS文件设置TextB ... 
- [转载]ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
		原文地址:http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly=" ... 
- ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
		SP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了ReadOnly="true" ... 
- asp.Net2.0中TextBox设置只读后后台获取不到值的解决方法
		http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly="tru ... 
随机推荐
- [LeetCode] 207. Course Schedule 课程安排
			There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may have prer ... 
- FPGA的配置方式
			FPGA的配置方式 FPGA的配置方式有以下几种,JTAG,AS,PS,AP,FPP等几种. JTAG模式.JTAG模式下将.sof文件下载到FPGA内部的RAM内部进行运行,掉电程序丢失,主要用于前 ... 
- springboot热部署JRebel插件
			激活参考:https://www.52pojie.cn/thread-906163-1-1.html 最后设置为离线,不然每次启动要重新激活 环境idea是2018.1.1版本 JRebel是最新版2 ... 
- TP5 模型CURD
			ThinkPHP5的模型是一种对象-关系映射(Object / Relation Mapping ,简称 ORM)的封装,并且提供了简洁的ActiveRecord实现.一般来说,每个数据表会和一个“模 ... 
- LeetCode 686. 重复叠加字符串匹配(Repeated String Match)
			686. 重复叠加字符串匹配 686. Repeated String Match 题目描述 给定两个字符串 A 和 B,寻找重复叠加字符串 A 的最小次数,使得字符串 B 成为叠加后的字符串 A 的 ... 
- java byte与int互相转换
			一.Int2Byte byte[] bytes = new byte[4]; for (int i = 0; i < 4; i++) { bytes[i] = (byte)(integer &g ... 
- 02 Struts2框架----学习笔记2(了解一下,已过时)
			1.*号通配符优化struts.xml代码 创建一个UserAction的动作类 package action; import com.opensymphony.xwork2.ActionSuppor ... 
- 原生js监听input值发生变化
			原生JS中可以使用oninput,onpropertychange,onchange oninput,onpropertychange,onchange的用法 1) onchange 触发事件必须满足 ... 
- GC收集器
			新生代收集器 Serial New 单线程收集器,工作时必须暂停其他线程: 简单高效,没有线程交互开销: 基于复制算法: Parallel New 对Serial的改进,多线程: CPU数量<4 ... 
- JavaScript是单线程还是多线程(转)
			多线程要考虑线程之间的资源抢占,死锁,冲突之类一系列问题.JavaScript作为一门客户端脚本,貌似没有多线程的一些列问题.那么JavaScript是单线程还是多线程?通过查资料总结了JavaScr ... 
