Páran biztos találkoztatok már azzal a problémával, hogy ha az oldalon vannak AJAX-os extenderek (pl: TextBoxWaterMarkExtender, vagy CollapsiblePanelExtender), akkor nem sikerül beállítni a fókuszt.
Ebben az esetben érdemes az AJAX-os fókuszállítást használni amit az AjaxControlToolkit.Utility.SetFocusOnLoad( ctrl ) segítségével tudunk megtenni. Hogy ne kelljen ezt a hosszú kódsort mindig leírni érdemes hozzá elkészíteni az alábbi bővítő metódust.
public static class ControlExtension
{
/// <summary>
/// Az adott vezérlőre állítja a fókuszt.
/// </summary>
/// <param name="ctrl">Maga a vezérlő amire a fókuszt kívánjuk állítani.</param>
public static void SetAjaxFocus( this Control ctrl )
{
AjaxControlToolkit.Utility.SetFocusOnLoad( ctrl );
}
}
Ezt követően már minden Control típusú vezérlőelemen meg tudjuk hívni egyszerűen az Ajax-os fókuszállítást. Pl.: txtName.SetAjaxFocus()