gooID利用規約 改定のお知らせ

お世話になります。ASP.NETのButtonコントロールに関する質問です。

Visual Studio 2008でASP.NETの開発を行っているのですが、
左のツールボックスにButtonコントロールが2つ存在します。

1. 標準コントロールのButtonコントロール
2. HTMLコントロールのButtonコントロール

上記いずれも最終的にHTMLの<Button>タグにレンダリングされる
と思うのですが、何が違うのでしょうか?

使い分け方について教えてください。

A 回答 (2件)

>上記いずれも最終的にHTMLの<Button>タグにレンダリングされる



いいえ。出力される HTML を確認してみてください。
どちらも input タグです。で、前者は submit タイプに、後者は button タイプにレンダリングされます。つまり submit タイプと button タイプの違いは何か、というご質問に変換できます。

フォームの中に Submit ボタンがあると、[Enter]キー押下でサブミットが行われます。
この Submit ボタンを HTMLコントロールに変更して、 runat="server" 属性と onserverclick 属性を追加したボタンに変えると、状況が変わります(ボタンをクリックしないと PostBack しません)。

Submit ボタンが二つある場合、より先頭に配置したボタンがデフォルトのサブミットボタンになるようです。

フォームの入力中についミスして、Enter を押してしまうと、PostBack が走ってしまう、このようなお節介が嫌なので、私は常に HTMLコントロールの方を使用するようにしています。
世間一般的には、Submit ボタンが普通に使われていますけど。
    • good
    • 0

うーん、私の理解ではこんな感じです。



1. 標準コントロールのButtonコントロール
・自動的にrunat="server"が設定されるのでサーバー側のボタンクリックイベントやらなんやら、ボタン関連のイベントが作成しやすいです。
・PageLoad等のイベント内でプロパティの設定を行えます。便利。
 (button1.text="hoge"等)

2. HTMLコントロールのButtonコントロール
・上記恩恵に与れない。

あえて言うなら使い分けはこんな感じかなぁ。。。
処理のために必要な挙動がjavascript(クライアント側)のみで済む場合。→HTMLコントロールのButtonコントロール
処理のために必要な挙動がserverのclickイベント(サーバー側)で済む場合→標準コントロールのButtonコントロール
クライアント・サーバー両方で処理が欲しいとき→標準コントロールのButtonコントロール
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング