前言
很久没有用服务器控件开发了,在新公司待了三四个月了,这个公司一直都用服务器控件。所以在开发的过程中也发现了一丢丢的东东,也许以前就知道,只是没有认真的发现。
过程
前几天在开发页面的时候,有个需求,如图(1)
文本框不可输入,必须点击查询放大镜去选择,文本框我用的是服务器控件,额,应该是我做的这个项目都是服务器控件,我不喜欢用服务器控件,但是只能这样吧.而且提交也是直接提交后置代码,那么问题是首次进入页面这个文本框是禁用的,不可输入。那么就直接enable属性了,但是enable属性禁用了,问题又来了。就是在提交的时候通过id在后置代码拿不到文本框的值,也就是enable给禁用了,也就是前置页面和后置代码之间,也就是客户端和服务端分离了,所以取不到值了。那么怎么办只能是在选择完用户后用js给它吧enable还原了,然后在提交完后在禁用了。
之后的又一个问题,DateList服务器控件,大概从从事开发到现在也就是在这个公司用到了,我早就忘记了它的OnItemDataBound事件,最后还是发现了。如果是html绑定数据不用服务器控件,那么我可以遍历ajax返回来的json数据源,然后绑定列表。在需要哪个字段做业务逻辑的时候直接js做就尅了,那么服务器控件就得去OnItemDataBound这个绑定的事件里面去做了。
今天发现了另一个问题,最近一直在学习前端的一些东西,今天该功能的时候。今天有个业务就是退回必须有退回原因,也就是我写了个弹出层,div嘛。然后一个文本框,一个保存按钮,一个取消按钮。点击取消的时候其实就将这个div给hide(),但是页面报错了。搞的好郁闷,最后一调试,发现为啥又加载后置代码了,最后发现,原来我的那个按钮是服务器控件button,也就是每次点击都是要挥发的。所以改成input button就ok了。这种完全没必要所以用服务器控件还是用html控件要看好了。
总结
尽管已经工作好多年了,即使这些小问题也知道,但是平时还是没有注意。服务器控件,感觉现在越来越少用了,可能之前的老系统还是用的服务器控件。自我感觉不喜欢用,这就是为什么有了mvc模式,前置页面与后置文件的隔离,高内聚低耦合,模块化,面向对象。一切的一切都是为了更好的开发,使得更加有艺术感。很多很多东西要学,很长很长路要走。
发现自己的样式好丑啊,看了看同学的样式,发现好好啊,惭愧啊。这个样式还是用他之前的。