Focus till komponent vid postback utan SmartNavigation

Ett problem med web forms är att dom tappar focus då man gör en postback. Man kan däremot använda SmartNavigation för att lösa detta, men det finns situationer då detta inte fungerar tillfredställande. Då kan man använda sig av denna kodsnutt som sätter focus på den komponent som orsakade postbacken.

Lägg in i din Page_Load:

if(Page.IsPostBack)
{
SetFocusPostBackControl(this);
}

Samt lägg till metoden:

///
/// Sätter fokus vid postback på den kontroll som hade focus
///
///
public void SetFocusPostBackControl(System.Web.UI.Page webPage)
{
string[] ctlPostBack;

ctlPostBack = webPage.Page.Request.Form.GetValues(”__EVENTTARGET”);
if (ctlPostBack != null && ctlPostBack.Length > 0)
{
string ctlUniqueId;
ctlUniqueId = ctlPostBack[0];
System.Web.UI.Control findControl = webPage.Page.FindControl(ctlUniqueId);
if ((findControl != null) &&
(findControl is DropDownList ||
findControl is TextBox ||
findControl is RadioButton ||
findControl is RadioButtonList))
{
string ctlClientId;
ctlClientId = findControl.ClientID;
string jScript;
jScript = ””;;

webPage.Page.RegisterStartupScript(”focus”,jScript );

}
}
}

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.