- - PR -
[ASP.NET] HTMLButtonコントロール
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-03-08 06:11
ASP.NETでHTMLButtonコントロール、HTMLでは<button>ですが、これがビジュアルデザイナのツールボックスには見あたりません。また追加しようとしても見つかりませんでしたが、これはどうしようもないのでしょうか。フラグメントとしてツールボックスに追加するしかない、ということでしょうか。せめてフラグメントのアイコンが変えられたらよいのですが…。
| ||||
|
投稿日時: 2004-03-08 10:05
<input type="button">のことでしょうか?ツールボックスの「HTML」タブの中に、「button」というものがありますけど?これではなく? [ メッセージ編集済み 編集者: Jitta 編集日時 2004-03-08 10:06 ] | ||||
|
投稿日時: 2004-03-09 00:44
紛らわしいですが、そちらはHtmlInputButtonコントロールです。
HTMLでは <INPUT type="button" runat="server"> です。 HTMLButtonコントロールは、HTMLにおいて <button type="button" runat="server"> という、buttonタグです。 | ||||
|
投稿日時: 2004-03-09 10:08
NAL-6295です。
HtmlButton コントロール の事ですかね。 とりあえずタグ打ちするのが良いかと。 | ||||
|
投稿日時: 2004-03-09 12:52
最初の投稿に書きましたように、HTMLはフラグメントとしてツールボックスに追加できるため、最初からツールボックスに入っているHTMLとほぼ同様のことが出来ます。これは直打ちのショートカットとも言えます。 ただアイコンが変えられないんですよね。そこで最初に書いたように、フラグメントのアイコンが変えられたらよいな、と思ったのですが。 | ||||
|
投稿日時: 2004-03-09 20:00
はじめまして。本掲示板で初めて発言致します。
よろしくお願いします。 質問の回答ではなく、書こうか書くまいか迷ったのですが、 Button要素つながりということで、 サーバーコントロール化した Button要素 を使う際の ちょっとした問題について書き込みさせていただきます。 -------------------------------------------------- クライアントがIEで、 サーバコントロール化したButton要素にType属性に「Submit」を セット(し、Name属性を設定し)た場合、 Button要素のボタンコントロールで、Type="Submit"でポストバックを発生させた時に、 同じページにあるWebConrol.Buttonコントロールのポストバック同定が混乱します。 原因はIEの特殊な仕様と、ASP.NETが HTML要素からコントロールを特定し、イベントを発生させる仕組みにあります。 * * * ご存知の方も多いと思いますが、 IEでは、<input type="submit">と<button type="submit">では挙動が変わります。 [INPUT] Forms に 押されたボタンのname属性値のみが含まれる [BUTTON] Forms に フォーム中の全てのボタンのname属性値が含まれる。 (押した、押さないに関わらない) 一方、ASP.NETページフレームワークはFormコレクション中の要素の「名前」と、 IPostBackEventHandler継承コントロールのUniqueNameとマッチングさせ、 一致したコントロールのRaisePostBackEventメソッドをコールしています。 (多分) その為、Type=Submit で HTMLコントロール化した Button要素をポストバックした場合、「名前がある=押した」と されてしまうため上記のような不具合を発生させます。 以上の理由からBUTTON要素にレンダリングされるWebコントロール (オリジナルのサーバコントロールを含む)を作成する場合、 ・JScriptによるポストバック機構を利用する (Page.GetPostBackEventReferenceの作るスクリプトをonClickにセット) ・Name属性は書き出さない とするのが無難です。 -------------------------------------------------- 以上は、VisualStucdio.NETにButton要素のサーバコントロール化を 任せてしまえばちゃんと回避してくれます。 (onClick属性値に「__doPostBack()」を書き出すはずです) ただし、type=submitが使えないため、<Input Type="submit">のボタンに比べ、 ・JavaScript OFFの環境で Button要素でポストバックを発生させられない。 ・フォームのデフォルトボタンになれない (Textフィールド等でエンターを押したときに自動的にクリックイベントが発生するボタン) などの制約が生まれます。 また、onClickにクライアントサイドスクリプトをセットするのが 事実上不可能になります。 ――以上、蛇足でした。 | ||||
1
