程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 利用繼承制作防止重復提交按鈕

利用繼承制作防止重復提交按鈕

編輯:.NET實例教程
我們浏覽很多論壇發表帖子時,單擊“發表”按鈕,這個按鈕就會變成灰色,並且還有提示如“正在提交,請稍候...”等,這樣做一方面讓用戶看到效果,避免長時間等待網頁的煩躁,另一方面又防止了重復提交。
  
  在.NET中沒有類似的功能,不過我們已經知道他就是一個普通按鈕的基礎上多加了一個功能而以。在.Net中,我們可以巧妙利用類的繼承來制作這種按鈕。
  這裡我是用C#語言作為范例,其他語言可以舉一反三得到應用,這裡不再贅述。
  
  我們需要自己寫一個類,這個類繼承自System.Web.UI.WebControl.Button:
  
  
  public class ClickOnceButton : System.Web.UI.WebControl.Button
  
  我們知道要實現這種功能需要借助JS腳本,.Net的控件提供了一個Attributes屬性用來添加任何想要的客戶端屬性。我們需要在客戶端的onclick中寫入:this.disabled=true,來達到使按鈕變灰,另外,再用一句:this.value="正在提交,請稍候...",來使的按鈕的文字改變。
  把插入腳本這一動作放在了控件加載的時候進行。因此,我們重寫OnLoad方法:
  
  
   protected override void OnLoad(EventArgs e)
   {
   this.Attributes.Add("onclick","this.disabled=true;this.value=\"正在提交,請稍候...\"");
   base.OnLoad (e);
   }
  
  上面這句向客戶端屬性中onclick添加了這些語句。記得重寫函數是不要忘記最後要調用基類的OnLoad方法。
  
  編譯,然後就可以在網頁上使用了。
  
  你可以作為一個單獨的控件庫項目來寫這個東西,然後從工具箱上添加上,把他們拖動到網頁中,就可使用了。大家還可以擴充一些實用的功能。具體控件的編程美化等等細節此處不再贅述。
  
  希望大家能夠從中受益
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved