我們浏覽很多論壇發表帖子時,單擊“發表”按鈕,這個按鈕就會變成灰色,並且還有提示如“正在提交,請稍候...”等,這樣做一方面讓用戶看到效果,避免長時間等待網頁的煩躁,另一方面又防止了重復提交。
在.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方法。
編譯,然後就可以在網頁上使用了。
你可以作為一個單獨的控件庫項目來寫這個東西,然後從工具箱上添加上,把他們拖動到網頁中,就可使用了。大家還可以擴充一些實用的功能。具體控件的編程美化等等細節此處不再贅述。
希望大家能夠從中受益