none
textbox的readonly问题 RRS feed

  • 问题

  • 近期碰到了个怪问题,给服务器控件textbox在aspx文件里直接加readonly=true时,后台cs文件接收不到传进来的文本值,而只有在后台CS端给textbox加属性TextBox1.Attributes["ReadOnly"] = "true";这样界面回发时才能接收到文本框的值,请问是什么原因.


    真水无香
    2009年4月21日 5:45

答案

  • 是出于安全考虑的,请参考详细介绍和解决方法

    http://blog.csdn.net/net_lover/archive/2006/09/25/1282127.aspx
    孟宪会
    2009年4月21日 8:09
    版主
  • 直接在ASPX写入ReadOnly="True",设置的是服务器端控件属性值,出于安全原因,ReadOnly="True"的控件不接受客户端值的变更。单人是写到Attributes里面的,这个值是直接写入客户端的,对客户端来说效果一样,但服务器端对此一无所知。
    Microsoft ASP.NET MVP
    2009年4月22日 13:30
    版主

全部回复

  • 在 aspx 中 把 readonly=true 改为 readonly="readonly" 试试
    知识改变命运,奋斗成就人生!
    2009年4月21日 5:52
    版主
  • 你在什么时候给 textbox 设的值,又在什么时候取它的值呢?
    知识改变命运,奋斗成就人生!
    2009年4月21日 5:57
    版主
  • 是出于安全考虑的,请参考详细介绍和解决方法

    http://blog.csdn.net/net_lover/archive/2006/09/25/1282127.aspx
    孟宪会
    2009年4月21日 8:09
    版主
  • 呃。。似懂非懂,就知道了Enable=false 是后台不能读到值。。但是我还是想问这个readonly属性前台和后台加有什么不同。


    真水无香
    2009年4月22日 13:28
  • 直接在ASPX写入ReadOnly="True",设置的是服务器端控件属性值,出于安全原因,ReadOnly="True"的控件不接受客户端值的变更。单人是写到Attributes里面的,这个值是直接写入客户端的,对客户端来说效果一样,但服务器端对此一无所知。
    Microsoft ASP.NET MVP
    2009年4月22日 13:30
    版主
  • 谢谢了,不过你的解释我看了还是不大明了,最好能用例子来解释这个区别,"单人是写到Attributes里面的,这个值是直接写入客户端的,对客户端来说效果一样,但服务器端对此一无所知。"这句话我看不懂.
    麻烦解决,马上结帖


    真水无香
    2009年4月23日 3:53
  • 意思是说:
    你在服务器端使用TextBox1.ReadOnly=true设置,服务端会知道这个属性,修改的值就不会处理了,
    在客户端通过脚本添加的这个属性,服务器端是不知道这个属性的,就按没有设置对待,客户端的内容修改可以在服务器端得到。




    孟宪会
    2009年4月23日 4:59
    版主
  • 大致明白了点,谢谢啊。


    真水无香
    2009年4月23日 14:16