ASP.net Webフォームでは、誰かがEnterを押したテキストボックスをどのように検出しますか?

StackOverflow https://stackoverflow.com/questions/87245

  •  01-07-2019
  •  | 
  •  

質問

ASP.net Webフォームでは、誰かがEnterを押したテキストボックスをどのように検出しますか?

Javascript に関する回答はご遠慮ください。

VB.NET を使用して、コードビハインドですべて処理する必要があります。

役に立ちましたか?

解決

どの TextBox が押されたかを判断する必要があるのはなぜですか?適切なボタン クリック イベントをトリガーできるように、どの TextBox がフォーカスされているかを確認したいと考えていますか?

このようなことを行おうとしている場合、私が行った 1 つのトリックは、独自のパネル内で適切なフォーム要素を「グループ化」し、それに応じて「DefaultButton」プロパティを設定することでした。

これにより、「名前による検索」、「部門による検索」、「ID による検索」などが可能になります。テキストボックスとボタンを 1 つのフォームに組み合わせても、ユーザーはクエリ パラメータを入力して Enter キーを押し、背後のコードで適切な検索メソッドを呼び出すことができます。

他のヒント

JavaScript なしでは実行できないのではないかと思います。Enter キーを押すと、ブラウザはフォームを送信しますが、どのフィールドにフォーカスがあったのかは送信されません。したがって、JS を使用してその情報を送信されるフォームに追加しない限り、運が悪いでしょう。

Javascript を使用しないと、それはできません。その情報はクライアントのブラウザからサーバーに送信されません。

私の知る限り、サーバー側のスクリプトでそれを検出する方法はありません。単にサーバーに送信されないだけです。これはクライアント側で実行する必要があります (つまり、Javascript を使用して)、サーバーに送信されます。

あるサイトの検索については、サーバー側の Request.Form オブジェクトを調べて検索ボックスに値があるかどうかを確認することで、これを解決しました。すべてのページ (またはマスターページの基本クラス) が継承する基本クラスでこれを実行しました。値がある場合は、誰かが何かを入力して Enter キーを押した可能性が非常に高いため、検索を処理しました。

イベント ハンドラーでは、「ソース」オブジェクト (イベント ハンドラーの最初のパラメーター) がイベントを発生させるオブジェクトです。ボタンに入力して名前を取得するか、リフレクションを使用して入力されていないオブジェクトから情報を取得します。

さらに、コントロールが独自のイベントを発生させていない Web コントロールの子である場合 (単に...)、OnBubbleEvent を使用して何が起こっているかを判断できます。OnBubbleEvent には、入力したりリフレクションを使用したりできる「source」パラメータもあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top