none
HTMLのbuttonでサーバーサイドでイベントを発生させたい RRS feed

  • 質問

  • 下記のような通常のHTMLのbuttonで、ボタンクリック時に

    asp:buttonコントロールをクリックした時のようなサーバーサイドでイベントを発生させるといったことは可能でしょうか。

    常識ではできないとは思うのですが、asp:buttonコントロールでは、ボタンに画像とテキストを混在させる

    ことが出来なさそうなので、なんとか無理なやり方でもできないか悩んでいます。

    何かお分かりの方いらっしゃいましたら、ご教示お願いいたします。

            <button type="submit" name="登録">
                <img src="images/hoge.png" alt="登録" />
                登録
            </button>

    2011年10月4日 8:39

回答

  • Page_Load とかで、 Request.Form.AllKeys の中に「登録」の文字列のキーがあるか確認してはどうでしょう。

    あったら希望のメソッドを呼ぶとか。


    • 編集済み TrimmerJP 2011年10月4日 8:46
    • 回答としてマーク るーしぇ 2011年10月4日 10:15
    2011年10月4日 8:46

すべての返信

  • Page_Load とかで、 Request.Form.AllKeys の中に「登録」の文字列のキーがあるか確認してはどうでしょう。

    あったら希望のメソッドを呼ぶとか。


    • 編集済み TrimmerJP 2011年10月4日 8:46
    • 回答としてマーク るーしぇ 2011年10月4日 10:15
    2011年10月4日 8:46
  • Button の style に background-image を指定するというのはいかがでしょうか。
    2011年10月4日 9:32
  • TrimmerJPさま、ありがとうございます。

    ご教示頂いたとおり、Page_Load時に以下のソースを追記することで実現できました。

            Dim s As String
            For Each s In Context.Request.Form.AllKeys
                If s = "登録" Then
                    Call Touroku()
                End If
            Next s

    そのままだと、クリック時に

    「危険な可能性のある Request.Form 値がクライアント (登録="<IMG alt="" src="ima...") から検出されました。」

    のエラーになってしまったので、ページディレクティブで validateRequest="False" を設定することで回避しました。

    2011年10月4日 10:13
  • totojoさま、ありがとうございます。

    background-image の設定ですと、イメージ通りのボタンデザインが出来なかったので

    html の buttonで できないかと模索しておりました。

    2011年10月4日 10:15
  • ImageButtonとかは使えなかったんだろか。。。
    http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.imagebutton.aspx
    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2011年10月4日 10:40
  • 小野さま、ありがとうございます。

    ImageButton の利用も考えたのですが、ボタンに画像とテキストを同時に表示させるというのが、

    ImageButtonでは出来なさそうなので、HTMLで考えておりました。

    2011年10月5日 4:35