ASP.NET改變了我們的編程方法,使得開發BS程序更加簡單。但如果大量使用服務器控件勢必會造成網頁頻繁提交,操作極不友好,也增加了服務器的負擔。把一些必要的驗證工作放在客戶端執行,只有通過驗證時才進行提交,就可以大大減少網頁的刷新次數。
例如當我們按下「刪除」按鈕時,先在客戶端進行一下確認:彈出一個「是否真的要刪除」的對話框。當用戶按下「是」是才提交至服務器執行刪除程序。如果按下否,則終止後緒的提交動作。提交是不要進行太多可考慮,因為服務器的按鈕控件是會自動完成,現在我給大家介紹終止提交的方法:
在DHTML中,每一個事件的處理都可以用return false來終止後緒動作的執行。如<BODY oncontextmenu = 「javascript: return false;」>可以禁止頁面上的右鍵菜單。對於服務器的按鈕來說,我們可以在第一次載入時(PageLoad)服務器端給它加入一個OnClick屬性用來執行客戶端角本: this.DelButton.Attribute.Add(」OnClick」, 「javascript:return delConfirm();」);在用戶按下「刪除」按鈕時,它會先執行客戶的的delConfirm()函數。注意:紅色字體的javascript:return (用來接收函數的返回結果)及;號(按鈕的提交動作將以角本方式註冊在止之;號之後,如果不用;號來隔開將會出現語法錯誤)是必須的。而在客戶端的函數中必須要有返回結果,其中return false;將終止後面的角本操作,而其它返回結果將繼續執行。
這樣刪除處理的完整方法如下:
服務器端:
private void Page_Load()
{
...
if (!this.IsPostBack)
{
...
this.delButton.Attribute.Add(「OnClick「, 「javascript:return delConfirm();「);
...
}
...
}
...
private void delButton_Click(object sender, EventArgs e)
{
...
}
...
客戶端:
...
<SCRIPT language=javascript>
function delConfirm()
{
return confirm(「你真的要刪除嗎?「);
}
</SCRIPT>
...
|
|