講到ASP.NET AJAX,很多人想到是拉個UpdatePanel,完全不必搞懂Javascript,就可以寫出AJAX的東東。事實上,ASP.NET AJAX除了讓大家可以用懶人法寫AJAX之外,在Javascript的Support上也提供了不少強化,這點之前就曾提過

最近又重回Web開發的工作,在策略上重用ASP.NET AJAX Client Library,也陸續學會不少小技巧,以下是幾個我覺得不錯的,整理出來給大家參考:

  1. $get("elementName"):
    這是一定要的啦,可以取代document.getElementById("elementName"),省打不少字,還可避免一不留神寫出document.all("elementName")這種IE專屬語法,被FireFox User臭罵。
  2. $addHandler(elementName, "click", clickEventFunction)以及$removeHandler(elementName, eventFunction):
    不必再花時間去找FireFox掛事件的方法囉,支援同時加掛多個事件函數在同一事件上的功能。 至於eventFunction會得到一個evt參數,evt.target在相當於event.srcElement,且是跨Browser可用。以下是個簡單的例子:
    <input type="button" id="btn" value="Click!" />
    <script type="text/javascript">
    $addHandler($get("btn"), "click", btnClick);
    function btnClick(evt) 
    {
        alert(evt.target.value);
    }
    </script>
    延伸閱讀:使用教學
  3. Array.enqueue(arrayVariable, object)Array.dequeue(arrayVariable):
    原本打算自己寫個Queue的,沒想到AJAX Client Library裡就有現成的可用。以下是簡單的範例:
    <script type="text/javascript">
    var ary = [ "1", "2", "3" ];
    Array.enqueue(ary, "4");
    Array.enqueue(ary, "5");
    while (ary.length > 0) {
        alert(Array.dequeue(ary));
    }
    </script>
  4. Number.format & Number.parseInvariant:
    Number.format()主要用來轉成#,##0.00的格式,但它比.NET的Format函數陽春許多, Number.parseInvariant則可以用將具有千位號的文字轉回數字。 格式化字串分兩部分,第一個字元代表格式,之後接著的是小數點的位數,例如: num.format("n2")表示以千位逗點號分隔,並留兩位小數。可用的格式如下:
    • p: 百分比字串(e.g.: -1,234.56 %)
    • d: 無逗點分隔號字串(e.g.: -1234.56)
    • c: 金額格式,負數用括號夾(e.g.: (¤1,234.56))
    • n: 逗點分隔字串 (e.g.: -1,234.56)
      延伸閱讀: 函數說明

【PS】

在Post這篇的同時,向大家報告一個消息:

我移情別戀了!!

要搞定Javascript,ASP.NET AJAX Client Library已不是我的最愛了。最近我與另一位美人jQuery陷入瘋狂熱戀中! 這位美人究竟有何魔力,讓原本心如止水的中年人再度熱血沸騰?? 就留待近期陸續揭曉吧!


Comments

# by 大估

最近大估也是在研究jQuery呀… 黑暗大大…難到我們變心的對象,是同一個嗎!!!! (好狗血的對話~~~)

# by Ammon

我早就嫁給他了XD

# by Ammon

忘了送上,我想很多人需要這個 jQuery Intellisense in Visual Studio http://www.west-wind.com/weblog/posts/251271.aspx

Post a comment