随笔 - 31  文章 - 1 评论 - 185 trackbacks - 3
<2007年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

欢迎访问我的非技术博客:
http://Moosdau.blog.163.com

与我联系

搜索

 

常用链接

留言簿(3)

随笔分类(30)

随笔档案(31)

最新评论

阅读排行榜

评论排行榜

做一个简单的实验先:
在vs2003中, 新建一个网页, 拖上一个textbox, 将它的readonly 设成true, 然后再放一个input: button, 给它写代码: document.getElementById("txt1").value="test"; 再放一个服务器端的button, 不用写代码.

好了, 开始运行, 点击客户端按钮, 会发现textbox 的值变成了test, 然后再点服务器端按钮使页面回传, 值仍然在, 也就是说, 服务器端的 txt1.Text 属性已经被成功更新了, 事实上, 这时候如果在txt1.OnTextChanged 事件的处理器中下断点, 可以看到事件被触发了.

但是, 在vs2005中, 做同样的动作, 点击服务器端按钮使页面回传后, textbox 的值就会丢掉, 给txt1.OnTextChanged 的处理器下断点, 发现事件没有被触发. 如果readonly 为false, 则服务器端的值被更新.

这一功能在vs 2005中的解决办法有:
<1> 不要将textbox 设为readonly , 而是在pageLoad 中, 为其增加一个readonly attribute, 这样在客户端它仍是只读的, 但是在服务器的眼里, 它不是只读的.
<2>用input:text 或其它代替textbox.
<3>在服务器端用Request.Form[txt1.UniqueID] , 可以取到更改后的值.

any way , 像我们公司一样, 在原来的项目中大量地应用了这一特性, 升级的时候, 大量的无聊工作就不可避免了.
真郁闷.
没有永恒的事
一切都在不断重复
我热爱这个世界
但绝不骄纵了它
posted on 2007-12-06 11:22 木刀 阅读(262) 评论(3)  编辑 收藏 所属分类: asp.net 点滴

FeedBack:
#1楼  2007-12-06 15:28 Bao      
有意思,但还没有碰到过
  回复  引用  查看    
#2楼  2007-12-06 22:13 老Q      
我也喜欢用readonly
唉,估计也要惨了,我现在还在用vs2003
还是等vs2008 sp1出来后再转吧
  回复  引用  查看    
这个我也遇到了
不过我比你好,我的是空间商那里把.NET的版本设置错了,结果很多TEXTBOX都不能用了,改了几页代码。后来检查一下,发现出错提示的版本是2.0的,呵呵
  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: