Thursday, March 16, 2006

Code for Setting focus on ASP.net page from Code

Public Shared Sub SetFocus(ByVal ctrl As Control, Optional ByVal formName As String = "")

Dim sb As New StringBuilder
Dim p As Control = ctrl.Parent

With sb
.Append("<script language="'JavaScript'" type="'text/javascript'">")
.Append("function SetFocus()")
.Append("{")
If formName = String.Empty Then
.Append("document.forms(0).")
Else
.Append("document.forms('" + formName + "').")
End If

.Append(Replace(ctrl.UniqueID, ":", "_"))
.Append(".focus();")
.Append("}")
.Append("window.onload = SetFocus;")
.Append("")
.Append("</script>")
End With

ctrl.Page.RegisterClientScriptBlock("SetFocus", sb.ToString())
End Sub