ASP.NET 2.0中ReadOnly的TextBox

转载 2006年05月22日 14:55:00

ASP.NET 2.0中ReadOnly的TextBox

[来源:AppDev-SYSK 118] 有时候,我们不希望用户直接编辑TextBox,而是希望通过客户端脚本的方式来设置内容,一般的做法是设置TextBox的属性ReadOnly为true。但在ASP.NET 2.0里有了变化,设置了ReadOnly为true的TextBox,在服务器端不能通过Text属性获取在客户端设置的新内容,在Reflector里比较一下LoadPostData的实现

.NET 1.1中,

bool IPostBackDataHandler.LoadPostData(string postDataKey, NameValueCollection postCollection)
{
      string text1 = this.Text;
      string text2 = postCollection[postDataKey];
      if (!text1.Equals(text2))
      {
            this.Text = text2;
            return true;
      }
      return false;
}

.NET 2.0中,

protected virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection)
{
      base.ValidateEvent(postDataKey);
      string text1 = this.Text;
      string text2 = postCollection[postDataKey];
      if (!this.ReadOnly && !text1.Equals(text2, StringComparison.Ordinal))
      {
            this.Text = text2;
            return true;
      }
      return false;
}

就可以看出,如果设置了ReadOnly为true,从客户端传回的新的值是不被设置到Text属性的。

想要保持.NET 1.*中的行为,建议的做法是设置客户端属性ContentEditable=false,参考

SYSK 118: ReadOnly or ContentEditable?
http://blogs.msdn.com/irenak/archive/2006/05/03/589085.aspx

其实如果是设置客户端属性的话,设置客户端的readonly属性应该也是可以的:

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

ASP.NET 2.0中TextBox服务器控件的ReadOnly和Disabled属性

在以前的ASP.NET 1.x版本中,设置为ReadOnly的TextBox控件在客户端更改了值后,在服务器端仍然可以得到修改后的值,但在ASP.NET 2.0中,这种做法已经限制。这是为了提高应用程...
  • net_lover
  • net_lover
  • 2006年09月25日 20:33
  • 12020

ASP.NET(C#)中将TextBox控件的Readonly属性设置为True时后台直接取值取不到的解决方案

当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空”。经过尝试,发现可以通过如下的方式解决这个问题: 方法一:不设置ReadOnly属性...
  • biaobiao1217
  • biaobiao1217
  • 2014年09月02日 17:42
  • 1500

ASP.NET 中TextBox设置ReadOnly或者Disable后获取不到值的解决办法

设置为ReadOnly或者Disable的TextBox 控件,在cs文件中无法获取其值以下为几种解决办法1.在.cs代码中设置TextBox的属性 例如 txtName.Attributes["re...
  • yinyaling
  • yinyaling
  • 2010年08月19日 21:18
  • 4144

ASP.NET 2.0中ReadOnly的TextBox

  有时候,我们不希望用户直接编辑TextBox,而是希望通过客户端脚本的方式来设置内容,一般的做法是设置TextBox的属性ReadOnly为true。但在ASP.NET 2.0里有了变化,设置了R...
  • hb_cattle
  • hb_cattle
  • 2008年04月07日 20:09
  • 485

ASP.NET 2.0中ReadOnly的TextBox

[来源:AppDev-SYSK 118] 有时候,我们不希望用户直接编辑TextBox,而是希望通过客户端脚本的方式来设置内容,一般的做法是设置TextBox的属性ReadOnly为true。但在AS...
  • shw586
  • shw586
  • 2006年05月14日 00:30
  • 602

easyui textbox 设置成 readonly

textbox 用js动态设置成readonly $("#fuDaoDisCount").textbox('textbox').attr('readonly',false);
  • qq_16272049
  • qq_16272049
  • 2016年10月24日 19:53
  • 3625

asp.net 子页面使用js给ReadOnly的TextBox赋值

主页面 前台代码:
  • nvhaixx
  • nvhaixx
  • 2016年11月30日 11:28
  • 498

ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值

SP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值   当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值...
  • suxuelian
  • suxuelian
  • 2017年03月25日 10:32
  • 439

html中input type="text" 的readonly 属性与asp.net服务器控件TextBox的readonly属性的js赋值、调用的小bug

我还是个刚刚入门的程序猿与大家分享下最近我做的一个项目,如有错误,请大师们指点一二! HTML: ...
  • yzm910823
  • yzm910823
  • 2013年12月18日 16:03
  • 1399

asp.net中如何保留password模式文本框textbox内的数据不丢失

在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号、圆点),就没有了!解决办法:在Page_Load中...
  • lyg105504
  • lyg105504
  • 2010年09月08日 01:16
  • 2019
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET 2.0中ReadOnly的TextBox
举报原因:
原因补充:

(最多只允许输入30个字)