donet中TextBox设置ReadOnly="true"取不到值

解决办法

1.在.cs代码中设置TextBox的属性 例如

txtName.Attributes["readonly"] = "true";

2. 不设置TextBox的ReadOnly为true,给该控件加上验证控件进行验证

3. 在TextBox的HTML标签中加入ContentEditable="false",这种方法简单,在IE中很好用,不用设置TextBox的

ReadOnly为true

4. 使用服务器端的隐藏控件,还需要加入JavaScript代码,当用户选择设置为ReadOnly的TextBox之后把填在该控件

中的信息使用JavaScript代码填写到添加的服务器端隐藏控件中,该方法最麻烦。

5:不设置ReadOnly属性,通过onfocus=this.blur()来模拟,如下:

 代码如下 复制代码

<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>
<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>

在此情况下,当文本框获得焦点时便立刻失去,所以也无法手动修改其内容,能够模拟ReadOnly,在后台代码中也能

通过Text属性,正常获取通过脚本在客户端设置的值;

6:设置了ReadOnly属性后,通过Request来取值,如下:

前台代码:

 代码如下 复制代码

<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>

后台代码:

 代码如下 复制代码

string Text = Request.Form["TextBox1"].Trim();

7:在Page_Load()正设置文本框的只读属性,在前台不设置。就能正常读取,如下:

 代码如下 复制代码

protected void Page_Load(object sender, EventArgs e)
{
     if (!Page.IsPostBack)
     {
          TextBox1.Attributes.Add("readonly","true");
     }
}

时间: 2024-11-03 19:41:33

donet中TextBox设置ReadOnly="true"取不到值的相关文章

jsp中当设置为true的时候面板大小将自适应父容器.

问题描述 jsp中当设置为true的时候面板大小将自适应父容器. 解决方案 解决方案二: 解决方案三:按百分比设置,自适应

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法_实用技巧

当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为"空" 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内容,这时就比较尴尬了. 刚开始是换成Html 里的 <input type="text" readonly="readonly" > ,不过后来发现这个工作量是很大的, 所以网上搜了下,没找出Text

JS中如何设置readOnly的值

 本篇文章主要是对JS中设置readOnly值的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在网页中我们有时候需要控制文本输入框的"输入状态",一些关键属性是不能修改的,这个时候需要将文本输入框的readonly属性设置为False,在网页中我们可以使用   <input name="txt_name" type="text" readonly="readonly" id="txt_Statu

JS中如何设置readOnly的值_javascript技巧

在网页中我们有时候需要控制文本输入框的"输入状态",一些关键属性是不能修改的,这个时候需要将文本输入框的readonly属性设置为False,在网页中我们可以使用 <input name="txt_name" type="text" readonly="readonly" id="txt_Status" name="txt_name" style="width:150px

gridview模版列中textbox设置为只读

问题描述 各位大神,我想问下,在一个gridview模板列中有一列是textbox,当模板列textbox加载数据后,我想问下如何在后台将这一列设置为只读,谢谢了. 解决方案 解决方案二:在你的GridView设计界面上本身就可以为模板中的TextBox绑定ReadOnly属性.这里选择Readonly属性,然后在绑定表达式栏输入Eval("是否只读")这类的绑定表达式就行了.在你为GridView提供的数据源的数据集合上,除了要为TextBox的Text属性提供一列值,还要为在数据实

关于easyui: 如何设置dialog中textbox不可编辑

问题描述 关于easyui: 如何设置dialog中textbox不可编辑 //$('#xzscore').attr("disabled", "disabled"); //$('#xzscore').attr('readonly', true); 试过上面两种方式没用,求解. 解决方案 看easyui的api. 解决方案二: 什么版本的easyui?1.4+的textbox重新生成过ui了,操作原来的对象无效,要调用textbox方法获取显示的对象来设置readon

asp.net TextBox控件设置ReadOnly后,不能回传。_实用技巧

很奇怪,以前都没有过这样的怪问题,在别人机器上都能正常,想到可能和ASP.NET的版本有关系. 我用的是 ASP.NET 2.0,当改成 ASP.NET 1.0,就正常了,TextBox控件ReadOnly=True,能回传. 在 ASP.NET 1.0 中是ReadOnly=True会回传的. 在 ASP.NET 2.0 中是ReadOnly=True就不会回传了. 解决的方法: <asp:textbox id="Username" runat="server&quo

js文件中写el表达式取不到值的原因及解决方法

 在js文件中写el表达式取不到值,百度一下,将经验总结如下,有类似情况的朋友可以参考下 今天在js文件中,写el表达式取不到值(代码如下),百度一翻,现总结如下:    1.javascript是客户端执行,EL是在服务端执行,而服务端比客户端先执行,所以取不到值    2.要想获取"${isLogin}"的值,可以在jsp中,用一个全局变量接收,然后再js中使用    3.注意:在使用时,注意要添加双引号,如var isLogin="${isLogin}"; 

jQuery动态设置form表单的enctype值(实现代码

本篇文章是对在jQuery中动态设置form表单的enctype值的实现代码进行了详细的分析介绍,需要的朋友参考下   代码简单, 注意2个地方enctype和encoding 复制代码 代码如下: $("#form").attr("enctype", "multipart/form-data");             $("#form").attr("encoding", "multipar