﻿# ASP.NET 設定 Login 控制項中的按鈕為頁面預設的按鈕

我們有一個網站，裡面有個「登入頁」，頁面中使用的是 ASP.NET 的 [Login 控制項](http://msdn.microsoft.com/zh-tw/library/ms178329\(VS.80\).aspx)，做為管理者登入之用，但是在我的 MasterPage 中有一個「電子報訂閱」的功能，讓使用輸入 Email 後按下旁邊的按鈕後會進行訂閱動作。

不過當我進入登入頁面的時候，在 Login 控制項輸入完帳號、密碼按下鍵盤的 Enter 鍵卻會觸發「訂閱電子報」的按鈕事件，導致出現 [RequiredFieldValidator](http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.requiredfieldvalidator\(VS.80\).aspx) 提示訊息，使用者原本預期要做「登入」動作的，但頁面卻提示你「請輸入您的 E-mail 信箱」，真是莫名其妙。

我們都知道要在頁面中按下鍵盤的 Enter 鍵可以在頁面的 form 標籤設定 [DefaultButton](http://msdn.microsoft.com/zh-tw/library/system.web.ui.htmlcontrols.htmlform.defaultbutton.aspx) 屬性指定當頁面按下 Enter 時預設觸發的 Button 是哪一個，但僅限於設定在 Button 控制項中，因為 DefaultButton 屬性是不可以設定在 Login 控制項上的！

要將頁面的 DefaultButton 設定在 Login 控制項中的「登入」按鈕裡，就必須要寫程式在 Code Behind 中透過 Login1.FindControl 把 Login 控制項中的登入按鈕給找出來，然後再指定到頁面的 Form 物件的 DefaultButton 屬性裡即可，如下程式碼：

```
Button LoginButton = (Button)Login1.FindControl("LoginButton"); 

Page.Form.DefaultButton = LoginButton.UniqueID;
```
