Click here to Skip to main content
15,886,362 members
Articles / Drop-down
Article

Set Focus Controls - AutoPostBack = true

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
11 Oct 2013CPOL1 min read 6.9K   1  
Every time user’s complaints me about page scroll issues. For example: If a lengthy page having a dropdown list with AutoPostBack = true at bottom of

This articles was originally at wiki.asp.net but has now been given a new home on CodeProject. Editing rights for this article has been set at Bronze or above, so please go in and edit and update this article to keep it fresh and relevant.


Every time user’s complaints me about 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... 

c# 

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 = "<SCRIPT language='javascript'>document.getElementById('" + sCtrlClientId + "').focus(); if (document.getElementById('" + sCtrlClientId + "').scrollIntoView(false)) {document.getElementById('" + sCtrlClientId + "').scrollIntoView(true)} </SCRIPT>";
 sPage.ClientScript.RegisterStartupScript(typeof(string), "controlFocus", sScript);
            }
        }
    }

Call this function on page load

Example: SetFocus(this);

vb.net

 Public Sub SetFocus(ByRef sPage As Page)
        Dim sCtrl() As String
        Dim sCtrlId As String
        Dim sCtrlFound As Control
        Dim sCtrlClientId As String
        Dim sScript As String

        sCtrl = sPage.Request.Form.GetValues("__EVENTTARGET")
        If Not IsNothing(sCtrl) Then
            sCtrlId = sCtrl(0)
            sCtrlFound = sPage.FindControl(sCtrlId)
            If Not IsNothing(sCtrlFound) Then
                sCtrlClientId = sCtrlFound.ClientID
                sScript = "<SCRIPT language='javascript'>document.getElementById('" + sCtrlClientId + "').focus(); if (document.getElementById('" + sCtrlClientId + "').scrollIntoView(false)) {document.getElementById('" + sCtrlClientId + "').scrollIntoView(true)} </SCRIPT>"
                sPage.RegisterStartupScript("controlFocus", sScript)
            End If
        End If
    End Sub

Example: Me.SetFocus(Page)

This will set focus on last used dropdown list.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
The ASP.NET Wiki was started by Scott Hanselman in February of 2008. The idea is that folks spend a lot of time trolling the blogs, googlinglive-searching for answers to common "How To" questions. There's piles of fantastic community-created and MSFT-created content out there, but if it's not found by a search engine and the right combination of keywords, it's often lost.

The ASP.NET Wiki articles moved to CodeProject in October 2013 and will live on, loved, protected and updated by the community.
This is a Collaborative Group

754 members

Comments and Discussions

 
-- There are no messages in this forum --