Introduction
In some cases when an ASP.NET page loads the control, you need to focus on is not visible because it is further down the page. I have had numerous occasions when a request variable indicates which item on a long list the user is interested in viewing, this script can help by scrolling the particular item into view.
Code
The following function I have added to a Utils.dll library for general use so is static and needs the current page as a variable.
public class Utils
{
public static void FocusControlOnPageLoad(string ClientID,
System.Web.UI.Page page)
{
page.RegisterClientScriptBlock("CtrlFocus",
@"<script>
function ScrollView()
{
var el = document.getElementById('"+ClientID+@"')
if (el != null)
{
el.scrollIntoView();
el.focus();
}
}
window.onload = ScrollView;
</script>");
}
}
You can use this as follows:
private void Page_Load(object sender, System.EventArgs e)
{
Utils.FocusControlOnPageLoad(this.yourcontrol.ClientID, this.Page);
}
Hopes this helps someone.