Ajax Control Toolkit–Slider:有朝一日倒過來
最後更新:2018-12-06
來源:互聯網
上載者:User
山東人大部分都知道一點韓複榘當年在濟南的荒唐故事,其中有其歪詩一首:“千佛山,佛山千,下頭粗來上頭尖;有朝一日倒過來,上頭粗來下頭尖。”
這幾天還真就有這樣的事情,在項目進行過程中我們使用了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有朝一日倒過來,上頭粗來下頭尖。
項目原因,好久沒有寫博了,朋友們你們還好吧