Um dos recursos interessantes do ASP.NET 2.0 que adoro usar é a propriedade DefaultFocus do objeto Form. Combiná-lo com a propriedade DefaultButton pode ajudar muito a melhorar a experiência do usuário em seus sites.
A propriedade DefaultFocus aceita um valor String que permite fazer referência ao controle para o qual você deseja definir o foco. Isso pode ser acessado chamando a propriedade UniqueId do controle, que retorna uma string com o nome completo do controle. Isso é importante porque pode haver várias caixas de texto txtFirstName em uma grade ou alguma outra estrutura de controle pai filho. Um UniqueId seria semelhante a ctl00 $ ContentPlaceHolder_MyRepeater $ MyRepeater1 $ txtFirstName.
Estou descobrindo que meus clientes estão muito satisfeitos com o uso dessas duas propriedades. Mas descobri um uso muito legal para a propriedade DefaultFocus esta semana. Você pode usar a propriedade DefaultFocus no manipulador de eventos de um controle AutoPostback. Por exemplo, se você tiver um DropDownList com um manipulador de eventos SelectedIndexChanged, poderá direcionar o foco padrão para um controle apropriado com base no valor selecionado.
Parcial
Classe
Chapter_4_DefaultButtonandDefaultFocus
Herda
System.Web.UI.Page
Protected
Sub
DropDownList1_SelectedIndexChanged (ByVal
remetente
As
Objeto
,
ByVal
e
As
System.EventArgs)
Lida com
DropDownList1.SelectedIndexChanged
Se
DropDownList1.SelectedValue> 1
Então
TextBox1.Visible=
False
TextBox2.Visible=
True
MinhaBase
.Form.DefaultFocus=TextBox2.UniqueID
Else
TextBox1.Visible=
True
TextBox2.Visible=
False
MinhaBase
.Form.DefaultFocus=TextBox1.UniqueID
End
Se
End
Sub
Protegido
Sub
Page_Load (
ByVal
remetente
As
Objeto
,
ByVal
e
As
System.EventArgs)
Handles
Eu
.Load
TextBox1.Visible=
False
TextBox2.Visible=
False
Fim
Sub
End
Classe
Em particular circunstância eu estava ocultando e exibindo controles dependendo da escolha em um DropDownList. Por exemplo, você pode querer saber o SSN de um aluno se ele for uma nova admissão ou seu StudentId se ele for um aluno existente. Nesse caso, posso ter uma linha em meu formulário para o SSN e uma linha para o StudentId e, dependendo da seleção do tipo de aluno em um menu suspenso, exibiria o campo apropriado e a linha correspondente. Para tornar o formulário mais fácil de navegar, posso usar a propriedade DefaultFocus para definir o foco para a caixa de texto recém-exibida para coletar as informações que desejo. Também fiz a escolha para que o usuário soubesse o que fazer a seguir.
Vamos enfrentá-lo, um usuário de software típico é preguiçoso. Nosso trabalho é tornar o uso de nossos aplicativos o mais fácil e indolor possível. Usar essas duas propriedades é essencial para realizar essa tarefa e são muito fáceis de implementar.