共用方式為


Button Web 伺服器控制項概觀

更新:2007 年 11 月

使用 ASP.NET Button Web 伺服器控制項可讓使用者張貼頁面至伺服器,並觸發頁面上的某事件。

這個主題包含:

  • 背景

  • 程式碼範例

  • 類別參考

背景

您可以使用 Button Web 伺服器控制項,讓使用者能夠張貼頁面至伺服器。該控制項會觸發伺服器程式碼中的事件,使您能夠處理以回應回傳。例如,使用者可以表示他們已完成表單,或他們想要執行某特定指令。

ASP.NET 包含了三種按鈕控制項,每一種在 Web 網頁上出現的方式都不同,如下表所列:

控制項

描述

Button

提供以 HTML input 項目呈現的標準命令按鈕。

LinkButton

在網頁中以超連結呈現。但它包含的用戶端指令碼能將表單張貼回伺服器 (您可以使用 HyperLink Web 伺服器控制項建立真實的超連結)。

ImageButton

呈現做為按鈕的圖形。這在展示豐富按鈕外觀時相當有用。ImageButton 控制項也會提供已按下之圖形中的座標資訊。

您也可以使用 HtmlButtonHtmlInputButton 控制項,於頁面上建立在伺服端程式碼中可程式化的按鈕。如需 HTML 和 Web 伺服器控制項之間差異的詳細資訊,請參閱 ASP.NET Web 伺服器控制項概觀

ImageMap 控制項可讓您建立具有作用點的圖形,使用者可按一下該作用點以執行回傳或其他動作。

Button 事件

當使用者按一下任何 Web 伺服器控制項按鈕時,便會將頁面傳送至伺服器。這會使網頁得以進行處理,並且在伺服器端的程式碼中引發任何暫止事件。按鈕也可以引發本身的 Click 事件,而您可以為這些事件寫入事件處理常式。

按鈕控制和驗證

如果頁面包含 ASP.NET 驗證程式控制項,根據預設,按一下按鈕控制項會造成驗證程式控制項執行檢查。如果啟用驗證程式控制項的用戶端驗證,則在驗證檢查失敗時不會送出頁面。

下表描述按鈕控制項支援的屬性,能夠讓您更精確控制驗證處理序。

屬性

描述

CausesValidation

指定按一下按鈕是否也要執行驗證檢查。將這個屬性設定為 false,以避免驗證檢查。

ValidationGroup

可讓您指定在按一下按鈕時,要呼叫頁面上的那個驗證程式。如果尚未建立驗證群組,按下按鈕則會呼叫頁面上所有的驗證程式。

如需詳細資訊,請參閱驗證 ASP.NET Web 網頁中的使用者輸入

按鈕回傳行為

當使用者按一下按鈕控制項時,網頁會回傳至伺服器。根據預設,頁面會回傳給自己,然後重新產生相同的頁面,並且處理頁面上控制項的事件處理常式。

您可以設定按鈕,將目前的頁面張貼至其他頁面。這在建立多頁表單上很有用。如需詳細資訊,請參閱 在 ASP.NET Web 網頁中跨網頁公佈

根據預設,Button 控制項會使用 HTML POST 作業送出頁面。LinkButtonImageButton 控制項無法直接支援 HTML POST 作業。因此,當您使用這些按鈕時,這些按鈕會將用戶端指令碼加入至頁面,讓控制項以程式方法送出頁面 (因此,LinkButtonImageButton 控制項需要瀏覽器啟用這個用戶端指令碼)。

在某些情況下,您可能希望 Button 控制項也使用用戶端指令碼執行回傳。如果您想要以程式方法管理回傳,例如將其附加至頁面上的其他項目,這種方法就很有用。您可以將 Button 控制項的 UseSubmitBehavior 屬性設定為 true,讓 Button 控制項使用用戶端指令碼回傳。

使用具有 UpdatePanel 控制項的按鈕

網頁局部呈現可以在不產生回傳的情況下,重新整理網頁的某些部分。UpdatePanel 控制項可讓您標記頁面上的數個部分以採用網頁局部呈現。依照預設,UpdatePanel 控制項 (包括 Button 控制項) 內部的控制項行為,設定為執行非同步回傳而非一般回傳。這只會重新整理來自發出回傳之 UpdatePanel 控制項的內容。

除了可將 Button 控制項案例用於 UpdatePanel 控制項內部之外,您也可以在下列案例中使用具有 UpdatePanel 控制項的 Button 控制項:

  • 將位於 UpdatePanel 控制項外部的 Button 控制項,定義為該面板的 AsyncPostBackTrigger 控制項。按下按鈕時,便會執行非同步回傳,並重新整理面板的內容。

  • 將位於 UpdatePanel 控制項內部的 Button 控制項,定義為該面板的 PostBackTrigger 控制項。按下按鈕時,便會執行回傳事件,即使按鈕位於 UpdatePanel 控制項內部。

如需網頁局部呈現與使用 UpdatePanel 控制項的詳細資訊,請參閱 UpdatePanel 控制項概觀網頁局部呈現概觀

處理按鈕控制項的用戶端事件

按鈕控制項可以同時引發伺服器和用戶端事件。伺服器事件會在回傳後發生,並且會在為頁面所撰寫的伺服器端程式碼中處理這些事件。用戶端事件會在用戶端指令碼中處理 (通常是 ECMAScript (JavaScript)),並且會在送出頁面之前引發。您可以藉由將用戶端事件加入 ASP.NET 按鈕控制項來執行工作,例如在送出頁面之前顯示確認對話方塊,也可以取消提交作業。如需詳細資訊,請參閱 ASP.NET Web 網頁中的用戶端指令碼HOW TO:回應用戶端指令碼中的 Button Web 伺服器控制項事件

資料控制項中的按鈕

Button Web 伺服器控制項通常用在資料控制項中,例如在 DataListGridViewRepeater 清單控制項中。在這些情況下,您通常不需要直接回應按鈕動作事件。反之,資料控制項中的按鈕會引發該資料控制項專用的事件。例如,在 DataList 控制項中,按鈕可能會引發 DataList 控制項的 ItemCommand 事件,而不是引發 Button 控制項的 Click 事件。

因為資料繫結清單控制項能夠包含許多按鈕,所以您可以設定按鈕的 CommandArgument 屬性,以指定要當成事件一部分來傳遞的值。接著您可以測試此引數,找出所按的按鈕是哪一個。

將資料繫結至控制項

您可以將 Button Web 伺服器控制項繫結至資料來源,以便動態控制他們的屬性設定值。例如,您可以使用資料繫結,來設定按鈕的 Text 屬性。

程式碼範例

HOW TO:將 Button Web 伺服器控制項加入至 Web Form 網頁 (Visual Studio)

HOW TO:將 ImageButton Web 伺服器控制項加入至 Web Form 網頁 (Visual Studio)

HOW TO:判斷 ImageButton Web 伺服器控制項中的座標

HOW TO:回應 Button Web 伺服器控制項事件

HOW TO:回應用戶端指令碼中的 Button Web 伺服器控制項事件

回到頁首

類別參考

下表列出與按鈕控制項相關的重要類別。

成員

描述

Button, LinkButton, ImageButton

按鈕控制項的主要類別。

回到頁首

請參閱

工作

HOW TO:將用戶端指令碼事件加入至 ASP.NET Web 伺服器控制項

概念

ASP.NET Web 網頁中的用戶端指令碼

在 ASP.NET Web 網頁中跨網頁公佈