Ajax Control Toolkit--Slider:有朝一日倒过来

山东人大部分都知道一点韩复榘当年在济南的荒唐故事,其中有其歪诗一首:“千佛山,佛山千,下头粗来上头尖;有朝一日倒过来,上头粗来下头尖。”
这几天还真就有这样的事情,在项目进行过程中我们使用了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有朝一日倒过来,上头粗来下头尖。

项目原因,好久没有写博了,朋友们你们还好吧
坚强2002和你一起回头再说...

你可能感兴趣的:(jquery,Ajax,浏览器)