山东人大部分都知道一点韩复榘当年在济南的荒唐故事,其中有其歪诗一首:“千佛山,佛山千,下头粗来上头尖;有朝一日倒过来,上头粗来下头尖。”
   这几天还真就有这样的事情,在项目进行过程中我们使用了Ajax Control Toolkit的Silder控件,样式是竖着的(Vertical);可是提交到测试之后
 马上就有反馈:为什么最大值10在下面,最小值0在上面?是啊,难道这是文化差异造成的?别管怎么样,怎么把它”倒过来“呢?
 
   首先,我考虑到有这样几个约束:
      1.时间紧张,没有时间对Slider控件进行完全的改造
      2.项目中使用这个控件只有这一个控件,别的控件或者页面不会出现,这个是可控的
     
      于是,我决定使用一个最简单的实现方法:
      【Step 1】给Slider的最大值0,最小值是-10;
            现在什么效果呢?上面是-10 下面是0;是不是把负号去掉就可以了呢?继续-》
      【Step 2】打开Ajax Control Toolkit 的源代码SliderBehavior.js文件_ensureBinding方法添加这样一段:
         if (value<0)
            {
            value=-value;
            }
           看看现在什么效果呢?页面上已经变成了10 9 8... 2 1 -0 0
      【Step 3】等等那个-0是怎么回事?是的,的确有这个问题数学里面的正零负零竟然在页面上出现了!递牙者,掰之啊
       if (value<0)
            {
            value=-value;
            }
            if (value<=0)
            {
            value=0;
            }
          问题解决!
         
         
       针对我们项目的特殊情况这样已经没有问题了,要折腾浏览器兼容的问题去了;要说的是:
       1.Slider还会有Callback之后样式丢失的情况 最新版本已经解决这个问题,请各位到官网下载最新
       2.开发过程中,如果你使用了多个版本AjaxControltoolkit的Dll,你调试页面的时候可能会发现上面的拖动的Handler小滑块没有了
       3.如果时间允许,我绝对不会这么干,因为还有其他的解决方案,比如JQuery等等
       4.不知道最初设计这个控件的时候,开发人员为什么把最大值放在下面,这个我需要一个合理的解释
       5.希望Silder有朝一日倒过来,上头粗来下头尖。
      
       项目原因,好久没有写博了,朋友们你们还好吧