私はこれを機能させる方法を理解しようとして非常識になりました。コードはおおよそ次のようになります。
function onDropDownChanged() {
$("#updatePanel").load(
"myUrl",
{ id: $("#myDropDown option:selected").val() },
onPanelLoaded
);
}
function onPanelLoaded() {
$("#theTextInput").focus();
}
$(document).ready(function() {
$("#myDropDown").change(onDropDownChanged);
}
変更ハンドラーが最初に起動されると、ajax更新が実行され、テキストボックスがフォーカスされます。
ただし、その後の変更では、引き続きajaxの更新が行われますが、テキストボックスが再びフォーカスされることはありません。
onDropDownChanged
で、ajax呼び出しの前に追加$("#updatePanel").empty()
すると、テキストボックスが常にフォーカスされることがわかりました。それに関する問題は、フォーム全体が一瞬消えて、醜いフラッシュを引き起こすことです。ajaxはこのようなものを素晴らしいものにするはずなので、私が使用したい回避策ではありません。