asp:LinkButtonリンクのように見えますが、サーバー側のクリックハンドラーもあるので、を使用したいと思います。
しかし、Webサーバーは、クライアントでjavascriptが無効になっているかどうかを検出できないようであり、引き続き機能するメカニズムにレンダリングされません。
リンクのように見えるが、サーバー側のOnClickイベントハンドラーを持つリンクを持つことは可能ですか?
答え
答えはノーですが、以下はいくつかの回避策のアイデアです。賛成票がゼロ以外のものを受け入れました。
asp:LinkButtonリンクのように見えますが、サーバー側のクリックハンドラーもあるので、を使用したいと思います。
しかし、Webサーバーは、クライアントでjavascriptが無効になっているかどうかを検出できないようであり、引き続き機能するメカニズムにレンダリングされません。
リンクのように見えるが、サーバー側のOnClickイベントハンドラーを持つリンクを持つことは可能ですか?
答えはノーですが、以下はいくつかの回避策のアイデアです。賛成票がゼロ以外のものを受け入れました。
CSSを使用してボタンのスタイルを設定し、リンクのように見せることもできますが、CSSの実装によっては、これはブラウザーに大きく依存します。
編集:それが受け入れられたので、私は私の答えを完成させなければならないと感じています。
asp:LinkButtonレンダリングはHTMLリンクにレンダリングされるため、Webページに投稿することはできません。ただし、 getリクエストのみを行うことができます。このMSを回避するには、JavaScriptを使用して投稿を処理します。ただし、Javascriptが無効になっている場合、これは不可能です。
asp:Buttonとasp:ImageButtonは異なります。彼らは、真のHTMLフォーム要素を使用してWebページに投稿する(またはフォーム属性に応じて取得する)ことによってHTMLフォームを送信します。したがって、これらはJSの介入なしで機能します。
一部のブラウザでは、CSSスタイルでボタンをリンクのようにスタイル設定できるため、これを使用して問題を回避できます。
ただのアイデア:
入力ボタンをレンダリングし、javascript を使用してリンクに変更します。このボタンは、javascript が有効になっていないブラウザでも機能し、javascript を使用している場合はリンクになります。
ASP.Net でこのようなものを使用すると、通常、JavaScript で隠されている「アクセス可能なコントロール」と共にコントロールをレンダリングします。したがって、この場合、LinkButton (デフォルトではスタイルによって非表示) と通常のボタンをレンダリングし、ボタンを非表示にして LinkButton を表示するようにいくつかの JavaScript を登録します。
これは、JavaScript を使用しないとうまく動作しない ASP.Net コントロールの非常に一般的な回避策です。または、Javascript を使用せずに「自動ポストバック」が必要な場合に使用します。
リンクのように見える INPUT タイプはありません。リンクを使用して Web ページで INPUT タイプのアクティビティを実行する場合は、現在表示している同じページに移動する必要があります。
リンクでクエリ文字列変数を渡し、それに応答することができます。ポストバックとまったく同じように動作するわけではなく、現在表示しているページに移動するだけです。