山東人大部分都知道一點韓複榘當年在濟南的荒唐故事,其中有其歪詩一首:“千佛山,佛山千,下頭粗來上頭尖;有朝一日倒過來,上頭粗來下頭尖。”
這幾天還真就有這樣的事情,在項目進行過程中我們使用了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)
if (value<=0)
value=0;
問題解決!
針對我們項目的特殊情況這樣已經沒有問題了,要折騰浏覽器相容的問題去了;要說的是:
1.Slider還會有Callback之後樣式丢失的情況 最新版本已經解決這個問題,請各位到官網下載下傳最新
2.開發過程中,如果你使用了多個版本AjaxControltoolkit的Dll,你調試頁面的時候可能會發現上面的拖動的Handler小滑塊沒有了
3.如果時間允許,我絕對不會這麼幹,因為還有其他的解決方案,比如JQuery等等
4.不知道最初設計這個控件的時候,開發人員為什麼把最大值放在下面,這個我需要一個合理的解釋
5.希望Silder有朝一日倒過來,上頭粗來下頭尖。
項目原因,好久沒有寫博了,朋友們你們還好吧