次の方法で共有


HtmlForm.DefaultButton プロパティ

定義

Enter キーを押したときにポストバックの原因となる HtmlForm コントロールの子コントロールを取得または設定します。

public:
 property System::String ^ DefaultButton { System::String ^ get(); void set(System::String ^ value); };
public string DefaultButton { get; set; }
member this.DefaultButton : string with get, set
Public Property DefaultButton As String

プロパティ値

ID が読み込まれたときに既定のボタンとして表示されるボタン コントロールの HtmlForm。 既定値は空の文字列 ("") です。

例外

既定のボタンとして参照されるコントロールの型は IButtonControl ではありません。

次の例では、 プロパティを設定 DefaultButton して、ポストバックの原因となる既定のコントロールを設定する方法を示します。

<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">     
   
  void Page_Load(object sender, System.EventArgs e)
  {
    
    // Set the text of the two label controls.
    Label1.Text = "The DefaultButton property is set to "
                + Form1.DefaultButton.ToString() + "<br/>";
    Label2.Text = "The DefaultFocus property is set to "
                + Form1.DefaultFocus.ToString();
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

    <title>HtmlForm DefaultButton and DefaultFocus Properties Example</title>

</head>

<body>

  <form id="Form1"
        defaultbutton="SubmitButton"
        defaultfocus="TextBox1"
        runat="server">
    
    <h3>HtmlForm DefaultButton and DefaultFocus Properties Example</h3>        
  
    TextBox1:
    <asp:textbox id="TextBox1"
                 autopostback="true" 
                 runat="server">
    </asp:textbox>
  
    <br />
  
    TextBox2:
    <asp:textbox id="TextBox2"
                 autopostback="true" 
                 runat="server">
    </asp:textbox>
  
    <br /><br />
  
    <asp:button id="SubmitButton"
                text="Submit" 
                runat="server">
    </asp:button>
  
    <asp:button id="CancelButton" 
                text="Cancel"
                runat="server">
    </asp:button>
  
    <hr />
  
    <asp:label id="Label1"
               runat="Server">
    </asp:label>
  
    <asp:label id="Label2"
               runat="Server">
    </asp:label>

  </form>

</body>

</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="Server">
       
  Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    
    ' Set the text of the two label controls.
    Label1.Text = "The DefaultButton property is set to " _
                  & Form1.DefaultButton.ToString & "<br/>"
    Label2.Text = "The DefaultFocus property is set to " _
                  & Form1.DefaultFocus.ToString
  End Sub
     
 </script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

    <title>HtmlForm DefaultButton and DefaultFocus Properties Example</title>

</head>

<body>

  <form id="Form1"
        defaultbutton="SubmitButton"
        defaultfocus="TextBox1"
        runat="server">
    
    <h3>HtmlForm DefaultButton and DefaultFocus Properties Example</h3>        
  
    TextBox1:
    <asp:textbox id="TextBox1"
                 autopostback="true" 
                 runat="server">
    </asp:textbox>
  
    <br />
  
    TextBox2:
    <asp:textbox id="TextBox2"
                 autopostback="true" 
                 runat="server">
    </asp:textbox>
  
    <br /><br />
  
    <asp:button id="SubmitButton"
                text="Submit" 
                runat="server">
    </asp:button>
  
    <asp:button id="CancelButton" 
                text="Cancel"
                runat="server">
    </asp:button>
  
    <hr />
  
    <asp:label id="Label1"
               runat="Server">
    </asp:label>
  
    <asp:label id="Label2"
               runat="Server">
    </asp:label>

  </form>

</body>

</html>

注釈

DefaultButtonプロパティを使用すると、フォームの入力コントロール (テキスト ボックスなど) で Enter キーを押すことで、ユーザーがポストバックを発生させる可能性があることを指定できます。 コントロール以外LinkButtonのインターフェイスから派生するコントロールは、既定のIButtonControlボタンとして指定できます。 プロパティによって DefaultButton 参照されるコントロールが から IButtonControl派生していない場合は、 InvalidOperationException 例外がスローされます。

マスター ページを使用していて、コンテンツ ページから プロパティをDefaultButton設定する場合は、ボタンの プロパティをUniqueIDIButtonControl使用します。 マスター ページの詳細については、「マスター ページ の ASP.NET」を参照してください。

次の DefaultButton シナリオでは、 プロパティによってポストバックが発生しない可能性があります。

  • フォーカスがフォームの入力コントロールの外側にある場合に Enter キーを押します。 既定のポストバック アクションは、トリガーされるとは限りません。

  • 複数行のテキスト ボックス内にフォーカスがあるときに Enter キーを押します。 複数行のテキスト ボックスでは、Enter キーを押すとテキスト ボックスに新しい行が作成されます。 一部のブラウザーでは、複数行のテキスト ボックス内で Enter キーを押すとポストバックがトリガーされます。 その場合、Enter キーを押して新しい行を作成する場合は、JavaScript 関数を入力コントロールにアタッチできます。 スクリプトは ENTER キーをキャプチャし、ポストバックを停止する必要があります。 たとえば、 プロパティ コレクションを使用して、 Attributes イベントのクライアント スクリプトを onKeyPress 追加できます。

  • コントロールを既定の LinkButton ボタンとして指定する。 および ImageButton コントロールのみがButtonサポートされています。

  • DefaultButton非同期ポストバック中にプログラムで プロパティを変更する。 非同期ポストバックは、ページに 1 つ以上 UpdatePanel のコントロールを追加することで、ページで有効にすることができます。 詳細については、「 UpdatePanel コントロールの概要 」および「 部分ページ レンダリングの概要」を参照してください

適用対象

こちらもご覧ください