软件的工业化生产

导航

湛蓝.net Web 日期时间和数字控件

              我们在进行Web开发时, 经常会遇到需要输入日期, 日期时间和数字的时候, 可惜是的是微软在Visual Studio2005时增加了很多的服务器控件, 可却没有增加Web 类型的数字和日期控件。如果直接采用TextBox, 用户界面即不友好, 同时需要在服务端增加很多不必要的验证代码, 肯定是不可取的。

           虽然我们可以采用嵌入Java Script的办法来引导用户输入, 但是需要为每一个数字和日期控件增加Java Script代码, 同时也需要管理各种图片及Java Script 文件, 其实每个数字和日期的设置都是一样的, 即使是在不同的项目里,很是烦恼。  是不是有很好的解决办法呢。


             答案是肯定的, 那就是做成Web服务器控件, 分别是Web 日期控件和Web 数字控件。


               Web 日期控件和Web 数字控件需要解决一下问题


                    1: 用户友好。 要有明确的提示引导信息, 操作要方便快捷。 同时不能有太多的限制。

                    2: 开发友好。 所需要的图片, JavaScript 应该打包到Assembly , 开发人员不需要去管理这些资源。 同时, 应该支持简单的设计太, 即在设计的时候应该和运行时看到的样子基本一致。

                    主要的技术:
                        JavaScript

                         服务器控件离不开JavsScript;日期控件一般采用弹出Layer的办法来实现, 弹出一个小窗口的办法不好, 主要是弹出一个小窗口的速度慢 , 有一个明显的等待过程。 弹出Layer 的办法一般是采用PopCalenday.Js,  Layer 的Html是采用JavaScript 动态生成的, 其原型应该是一个法国作者,现在网上的Web日期控件大都是在此基础上做少量修改而成的。 由于Layer Html 是采用JavaScript 动态生成的, 因此, 修改的难度比较大。这也是Web 日期控件最核心的技术部分了。

                      正在表达式

                               日期控件应该既能选取, 同时也能直接输入, 数字控件一般采用直接输入的方式来实现。日期和数字控件都有特定的格式, 并且这种格式式可以采用正在表达式来验证的。 数字和日期控件应该引导用户按到正确的格式进行输入, 限制不正确的格式输入。
具体实现为在服务端根据属性设置来生成正则表达式, 然后传递到客户端, 客户端根据正则表达式来引导用户输入。


                     资源嵌入
                         
                          Web日期控件需要有图片和JavaScript文件的支持;一般的做法式将这些资源放在Web站点特定的目录, 但这样做比较麻烦。微软在Vs2005开始支持资源嵌入,因此, 我们需要将这些资源嵌入到Assembly, 以简化Web 日期数字控件额的部署。

                    多语言支持

                              数字和日期的表达形式一般与特定的语言文化联系在一起,因此, 数字和日期控件应该支持多语言。多语言的支持可以考虑如下三种形式, 一是直接指定显示的格式,这样比较简单, 适合于只需要在一种语言文化的环境下使用。 二是根据客户端的的语言文化来决定日期和数字的格式, 这样做比较符合用户的使用习惯。 还有就是根据服务器当前线程的语言文化, 这样做的好处是支持多语言切换。
                 强类型的值属性
                     
                       TextBox 只有Text属性, 根据Text属性可以推算出数字和日期的值 , 但这需要额外的代码, 因此, 服务器控件应该有自己的强类型的值属性; 因为现在Linq已经开始流行, 因此支持Nullable的值类型也就很有必要了。


                  Web DateBox还应该支持日期时间格式。 虽然日期时间格式不是经常需要, 但作为一个通用的控件, 还是应该支持的。

  1: 支持日期控件的图片, Java Script , CSS等文件全部与DLL一起打包, 因此, 使用本控件库时, 只需要简单的添加引用, 然后就可以从工具箱上拖到Web Form就可以了。

2:数字控件改善了对齐,ClipBoard访问功能

3:全面支持Nullable()属性

4:日期控件不仅支持日期, 同时也支持日期时间格式, 所有辅助文件全家打包到DLL, 支持多种日期格式,


5: 日期控件使用Layer技术, 选取日期时不是弹出一个新的小Page, 而是弹出一个Layer, 与页式日期控件相比,极大的改善了用户友好性。

6: 数字控件采用在服务端自动生成正则表示式的形式

这两个小控件,  能够极大的改善Web application 的开发速度, 同时提供了very cool的用户体验

下载地址  http://www.bluetechchina.com/ResourceCenter/DotNetCodingControls2.0.Zip


g

posted on 2008-04-28 08:55  堂吉柯德  阅读(2788)  评论(3编辑  收藏  举报