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 where a request varible 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 gerneral 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);
}

posted on 2005-03-13 15:07  stone  阅读(697)  评论(0编辑  收藏  举报