希望在某個 Label 控制項,按下滑鼠左鍵之後,即會使用 AJAX Control Toolkit 的 PopupControlExtender 彈出 1 個 Panel 控制項,於其內有 2 個Textbox 與 Button(分別用來「新增」與「取消」之用)。於各 Textbox 輸入完畢,並按下「新增」按鈕之後,便將各 Textbox 的值放入剛剛觸發的 Label 控制項裡。
程式碼的重點在於:
- 不需用 UpdatePanel 把 Label 控制項包起來,雖然 UpdatePanel 是 AJAX Control Toolkit 的核心之一,但是請不要濫用!
一來是效能考量,二來是為了善用 PopupControlExtender 所提供的 CommitScript 與 CommitProperty 屬性。 - Popupcontrol Extender 所彈出的 Panel 控制項之 UpdatePanel 的 UpdateMode 屬性應該要明確設定為 Conditional。
很多人抱怨用了 AJAX 網路流量沒有減少,效能也沒提升,原因就是因為沒特別去設定 UpdateMode 屬性。 - Label 控制項根本就沒有 value 這樣的屬性可在 JavaScript 使用,有的也只是 HTML 控制項通用的 innerText 或 innerHTML,那為什麼我可以在 GetValue() 那段 JavaScript 程式碼這樣寫:
function GetValue(sender) { var lbl = $get(sender); if(lbl!=null) lbl.innerText = lbl.value; }請自個體驗箇中奧妙吧!
原始碼下載:
PopupControlExtenderUsingLabels.zip
沒有留言:
張貼留言