天天看點

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)

            if (value<=0)

            value=0;

          問題解決!

       針對我們項目的特殊情況這樣已經沒有問題了,要折騰浏覽器相容的問題去了;要說的是:

       1.Slider還會有Callback之後樣式丢失的情況 最新版本已經解決這個問題,請各位到官網下載下傳最新

       2.開發過程中,如果你使用了多個版本AjaxControltoolkit的Dll,你調試頁面的時候可能會發現上面的拖動的Handler小滑塊沒有了

       3.如果時間允許,我絕對不會這麼幹,因為還有其他的解決方案,比如JQuery等等

       4.不知道最初設計這個控件的時候,開發人員為什麼把最大值放在下面,這個我需要一個合理的解釋

       5.希望Silder有朝一日倒過來,上頭粗來下頭尖。

       項目原因,好久沒有寫博了,朋友們你們還好吧

繼續閱讀