0

コントロールの1つで.Focus()を明示的に呼び出しているにもかかわらず、期待される "WebForm_AutoFocus()"javascriptを生成しないASP.NETページがあります。何らかの要因がそのjavascriptの生成を妨げる既知のシナリオはありますか?

具体的には、ユーザーが特定のボタンをクリックすると、いくつかの新しいコントロールが動的に作成されます。この場合はテキストボックスです。OnPreRenderでは、新しく作成されたコントロールを取得して、.Focus()を呼び出しています。アイデアは、ポストバックが完了すると、ブラウザが新しく作成されたテキストボックスコントロールにフォーカスを与えるというものです。ただし、生成されたHTML(firebugとfiddlerで確認済み)には、WebForm_Autofocus呼び出しがまったく含まれていません。

他のシナリオでは、同じページ(ポストバック時または最初のヒット時)が別のコントロール(動的に作成されないコントロール)で.Focus()を呼び出します。そのような場合、WebForm_AutoFocus()スクリプトは完全に生成され、すべてが正常に実行されます。

残念ながら、私はフレームワークをフレームワークに、抽象化を抽象化に愛するクライアントシステムに取り組んでいるため、ここに意味のある簡潔なコードサンプルを投稿することはできません。ただし、私の友好的なSO'erのいずれかが、その「WebForm_AutoFocus」JavaScriptの生成(および生成を妨げるシナリオ)について詳しく知っている場合は、掘り下げるのに適した場所になります。

4

1 に答える 1

0

オートフォーカスの呼び出しは、asp.net がその必要があると判断した場合にのみ含まれます。ページにデフォルトのボタンを設定して、asp.net がメソッドを作成することを認識できるようにします。

于 2013-01-21T21:09:02.233 に答える