ASP.NET 2.0 : Usando o controle Multiview


Este artigo mostra como usar o controle MultiView. Uma de suas utilidades é coletar informações de diferentes visões. Irei usar um pequeno exemplo que será construído usando o  Visual Web Developer - VWD - da Microsoft.

Abra o VWD e clique na opção File -> New Web Site. A seguir informe os dados conforme a figura abaixo: (fique a vontade para alterar os nomes que eu usei)

Agora clique duas vezes no controle MultiView da barra de ferramentas para incluí-lo na página default.aspx.

Agora inclua 3 controles View para o interior do controle MultiView. E em cada um dos controles View inclua os controles e texto conforme exibido na figura abaixo. (Estarei usando os nomes padrão dado pelo VWD para os controles MultiView e View)

Para incluir as opções nos controles RadioButtonList clique na Smart Tag do controle e selecione a opção Edit Items...
A seguir na janela ListItem Collection Editor, usando o
botão Add , inclua itens informe o seu nome no campo Text.

Abaixo o resultado esperado após a inclusão dos controles : RadioButtonList e Button nos controles View.

Inclua o seguinte código no arquivo (Code Behind) default.aspx.vb:

Protected Sub btnAllButtons_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAvanca1.Click, _

btnAvanca2.Click, btnRetorna.Click, btnEncerra.Click, btnReinicia.Click
 

  Select Case CType(sender, Button).Text
  
  Case "Avançar >"

        MultiView1.ActiveViewIndex += 1

    Case "Retorna"

        MultiView1.ActiveViewIndex -= 1

    Case "Encerrar"

        Response.Write("Você selecionou a opção : <b>" & rbl1.SelectedItem.ToString & _

                             "</b> como linguagem que deseja aprender.<br/>")

        Response.Write("Você sugere que o site www.macoratti.net tenha mais artigos sobre : <b>" & _

                             rbl2.SelectedItem.ToString & "</b>")

         btnEncerra.Enabled = False

         btnReinicia.Enabled = False

     Case "Reiniciar"

         MultiView1.ActiveViewIndex = 0

   End Select

 

End Sub

O código acima controle a navegação pelas páginas conforme o botão que o usuário selecionar.

Defina a propriedade ActiveViewIndex do controle MutiView como igual a zero para que a primeira View do controle seja exibida quando a página for carregada.

Feito isto Salve o projeto e execute-o usando o servidor do próprio VWD. Você poderá ver a seguinte janela:

Você pode escolher qualquer uma das opções e clicar no botão OK. Abaixo temos a sequência de janelas exibidas pela aplicação:

Esta será a primeira página a ser exibida. Ela esta contida no controle View1

Selecionando uma opção e clicando em Avançar> iremos para página seguinte...

Esta é a página exibida quando se clica no botão Avançar > da página anterior. Ela esta contida no View 2

Selecionando uma opção e clicando em Avançar> iremos para página seguinte...

Esta será a última página ser exibida. Ela esta contida no View 3.

Se o usuário clicar no Botão Reiniciar a primeira página será exibida novamente.

Se o usuário clicar no Botão Encerrar iremos para página seguinte onde será exibido o resultado da seleção.

Página exibindo o resultado da seleção.

 

Em poucos minutos criamos uma pequena aplicação Web. Você pode criar enquetes com várias visões e muitas outras tarefas usando este controle.

Embora o controle MultView facilite muito vida do programador Web você ainda tem que criar o código para controlar a navegação pelas páginas. Ocorre que temos a disposição de uma ferramenta que facilita ainda mais a nossa vida; estou falando do controle Wizard.

A seguir mostrarei como usar o controle Wizard para criar páginas com múltiplas visões.

-Clique com  botão direito do mouse sobre o nome do projeto na janela Solution Explorer e selecione a opção Add New Item.

- Na janela selecione o item Web Form e aceite o nome padrão Default2.aspx clicando em Add.

Usando o controle Wizard para facilitar ainda mais a sua vida

- Inclua o controle Wizard a partir da barra de ferramentas na página Default2.aspx.

Nota:  Eu vou usar o nome padrão dado pelo VWD e não vou traduzir os labels dos controles do formulário apenas por preguiça...

- No menu de tarefas do Wizard , clique no link "Add/Remove WizardSteps..." para incluir um passo adicional ao controle (Há dois passos criados por padrão para você: Step 1 e Step 2).

- Na janela do editor Wizard Collection, clique no botão Add e inclua o passo chamado Step 3 clicando em seguida no botão OK.

- Selecione o passo 1 - Step 1- e copie o conteúdo que foi criado na página Default.aspx no primeiro controle View conforme abaixo:

- Repita o procedimento , selecionando o passo 2 - Step 2 - e copiando e colando o conteúdo da página default.aspx do controle View2.:

- Finalmente no passo 3 - Step 3 - inclua o seguinte texto:

Se você quiser pode aplicar uma formatação conforme a figura abaixo , clicando sobre o controle Wizard com o botão direito e selecionando a opção Auto Format...

Finalmente clique duas vezes sobre o controle Wizard e no evento FinishButtonClick insira o código abaixo que será executado quando o usuário clicar no botão Finish:

Protected Sub Wizard1_FinishButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs)

Response.Write(" www.macoratti.net " & "<p>")

Response.Write("Você selecionou a opção : <b>" & rbl1.SelectedItem.ToString & _

"</b> como linguagem que deseja aprender.<br/>")

Response.Write("Você sugere que o site www.macoratti.net tenha mais artigos sobre : <b>" & _

rbl2.SelectedItem.ToString & "</b>")

Wizard1.Visible = False

End Sub

Defina a página Default2.aspx com página inicial, clicando sobre a página no Solution Explorer e selecionando a opção - Set As Start Page.

Execute o projeto pressionando F5 e você verá a página inicial conforme abaixo ser exibida. Basta navegar pelas páginas para ter o mesmo resultado que obtivemos usando o MultiView.

Os controles MultiView, View e Wizard formam um conjunto excelente para criar páginas com muitas visões; são também muito flexíveis e podem ser configurados facilmente. Eu apenas mostrei o arroz com feijão, use seu talento e imaginação e vá além...

È simples, é fácil, é web. É ASP.NET ...


José Carlos Macoratti