坎尼的同事問到這個問題
由於舊系統的資料量太大 每次 Query 都會等待一段時間
可是 user 有時卻等不及想再按一下
這時除了讓所有 button diable 的方法 (請參考 這裡
還可以利用簡單的提示訊息 讓使用者明白目前的系統正在運作
由於舊系統是以 vs 2003 做開發 要加入 Ajax 套件的功能有點麻煩
所以坎尼想到了用 javascript 來控制訊息
這邊要提一下 Webform 執行指令的先後順序
當按下一個 asp button 要送回後端處理時
此時瀏覽器會優先執行 button 上的 javascript
(其他控制項的先後順序當然也是這樣)
所以可以利用 控制項 的 Attributes.Add() 方法 加入前端要觸發的事件
以下就以按下 button 然後產生文字提示作示範
首先在畫面上佈置一個 label 及 button 控制項
坎尼把 label 的文字顏色改為 紅色 這樣比較醒目
接著在 page_load 事件加上前端的 onclick 事件
(若是使用 vs 2005 以上版本 button 可以改用 OnClientClick 屬性)
這邊可以看到 坎尼在按下 button 時 利用 javascript 將 label 的文字改變
另外第一句註解的地方 是 jquery 的寫法
再來看按下 button 的事件
這邊可以放置後端處理事件的 code (範例是利用 Thread 讓整個程序睡5秒
記得在事件結束前 把 label 的文字改為 「載入完成」
以下是實際執行情況
由於客戶只要求能有個提示就好 所以坎尼也只幫同事研究到這邊
其實這類的應用應該古早以前就有人寫過了吧? (坎尼還沒 Google 過
除了文字改變的表示外
還可利用 javascript 去控制 css 樣式
讓文字標籤出現完成字樣後 再慢慢的淡出
(將顏色改為和背景色相同 或是改 alpha 值 有興趣的人請自行測試
更懶的人可以直接用 display 的屬性讓 Label 消失
(以下碎碎念
近年出現了許多很炫麗的網頁技術
但在寫程式之前 其實可以先思考開發的便利性及功能性
此類簡單的應用勝過研究許許多多的新技術 只為了導入一個簡單的功能
花費的時間人力成本可能勝過原本的想像
坎尼也是很喜歡去學新技術
不過還是不要只 Google 了一下 囫圇吞棗完就準備上陣
許多基礎原理還是要弄懂 免得後來 debug 到天明 :p
訂閱:
張貼留言 (Atom)
Google Spreadsheet 裡用規則運算式
最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D
-
今天坎尼去上課老師講了一題很有趣的題目 所以回到家坎尼就順手試驗了一下 I. XOR (exclusive OR) XOR 是邏輯運算子之一,定義為: 當兩數的值不同才為 true,相同則為 false 其他相關說明可以參考 維基百科:XOR II. 程式 以往的做法會宣...
-
好久沒開 Chart Control 議題了 剛好前陣子 Codeplex 出現可以輕鬆建立 Excel 檔案的 Library- NPOI 於是坎尼想說研究一下,看能不能把 Chart Control 匯出圖片到 Excel 中 沒想到只花了不到1小時就研究...
-
上個週末打開一個影片檔,發現字幕檔是中英文混合的,造成字幕吃掉畫面很大的空間, 打開字幕檔一看,果然每一段時間都有先英文後中文的字幕: 因此我想要自己作成「只有中文」&「只有英文」兩個字幕檔,但這個檔案有6418 行,如果要手動一行一行的刪除...
1 則留言:
This is a good reference:
PleaseWaitButton ASP.NET Server Control
http://www.codeproject.com/KB/webforms/PleaseWaitButton.aspx
張貼留言