Tuesday, July 7, 2009

Set Focus Controls into a lengthy Page

Page scroll issues.
For example: If a lengthy page having a dropdown list with AutoPostBack = true at bottom of page. After the selection page gets reloaded and focus will be on top of the page. User needs to again scroll down the page for next key in. Here a sample solution for help...

public void SetFocus(Page sPage)
{
string[] sCtrl = null;
string sCtrlId = null;
Control sCtrlFound = default(Control);
string sCtrlClientId = null;
string sScript = null;

sCtrl = sPage.Request.Form.GetValues("__EVENTTARGET");
if ((sCtrl != null))
{
sCtrlId = sCtrl[0];
sCtrlFound = sPage.FindControl(sCtrlId);
if ((sCtrlFound != null))
{
sCtrlClientId = sCtrlFound.ClientID;
sScript = "";
sPage.ClientScript.RegisterStartupScript(typeof(string), "controlFocus", sScript);
}
}
}

Call this function on page load

Example: SetFocus(this);

This will set focus on last used dropdown list.

Reference

No comments:

Post a Comment