Saturday, March 24, 2012

Set Focus and post back on Dropdown List

I have a dropdown list that hides certain rows in a datagrid.

The focus remains on the dropdown list after the postback and I am trying to get it away from it because the user may and does want to use the mouse wheel to scroll down, but since the focus is on the ddl, they may not see it and it will resort.

Here is my set focus code which works fine on page load event...


Private Sub SetFocus(ByVal ctrl As System.Web.UI.Control)
Dim s As String = "<SCRIPT language='javascript'>document.getElementById('" & ctrl.ID & "').focus() </SCRIPT>"
RegisterStartupScript("focus", s)
End Sub

And this code is for the page load event...


If Not IsPostBack Then
Me.SetFocus(Me.txtSearch)
End If

I have been trying to place the Me.SetFocus(Me.txtSearch) where the postback of the ddl occurs in the code, such as the reBind() or the ddlTypes_SelectedIndexChanged() and the dgServer_ItemDataBound() which has the ddl code.
None seem to work, but it works on page load event.

Suggestions?

Thanks all,

Zath
This should work fine from your ddlTypes_SelectedIndexChanged() event handler. Are calling this method only if the IsPostBack property is false? If so, that could be your problem.

Have you tried putting the SetFocus in the Page_PreRender? This runs after the event code.


Private Sub Page_PreRender(ByVal sender AS Object,VyVal e AS System.EventArgs) Handles MyBase.PreRender
If ispostback=true then
Me.SetFocus(Me.txtSearch)
End if
End Sub

You can use
If Not ispostback
if necessary.
check out my component here :view post 821121

regards

0 comments:

Post a Comment