Criar uma matriz de estados VB+ASPX (IMPORTANTE)

6 respostas
RafaelaG

Antes de mais Boa Tarde.
Estou a desenvolver uma pagina em VB+ASP.Net e gostaria de fazer uma matriz de estados.
Imaginem um hotel, e quero por os quartos ocupados a Vermelho e os livres a verde.
Algo deste género:

http://imageshack.us/photo/my-images/259/semttuloppg.jpg/
Com botões, esta fora de questao… porque teria de fazer 300 :s

Se houver algo em jquery, acho que tambem me dará jeito.

Obrigado.

6 Respostas

RafaelaG

Pessoal é algo deste genero:

Dim x As Integer
        Dim y As Integer
        For x = 0 To 20
            For y = 0 To 10
                Dim botao As New Button
                With botao
                    .Visible = True
                    .Text = "Lugar" & x & y & vbCrLf

                End With
               
                Me.Controls.Add(botao)
            Next
        Next
    End Sub

Com labels, funciona lindamente... Mas com botoes, dá um erro na pagina muito estranho O controlo 'ctl02' de tipo 'Button' tem de ser colocado dentro de uma marca form com runat=server.

Mas não ter qualquer logica o runat=server, visto estar num ficheiro aspx.vb.

douglaskd

um botão quando renderizado em HTML deverá ficar dentro das tags

o Visual Studio quando pré renderiza a página percebe que esta fora e te retorna o erro…

você pode criar um método usando seu código…

e no ASPX você o chama onde deseja, …dentro das tags

W

Ola Rafaela,

Na verdade tem varios problemas. Primeiramente, vc nao esta definindo um ID para os seus botoes e esta deixando o ASP.NET se encarregar de criar os IDs para voce. Por isso ele cria com esses id estranhos tipo: ‘ctl02’

Dim x As Integer  
      Dim y As Integer  
      For x = 0 To 20  
          For y = 0 To 10  
              Dim botao As New Button  
              With botao  
                  .Visible = True  
                  .Text = "Lugar" & x & y & vbCrLf  
  
              End With  
               
              Me.Controls.Add(botao)  
          Next  
      Next  
  End Sub

O que vc poderia fazer eh :

  1. Definir um id do botao, por exemplo ID=“ButtonQuarto”. Fazendo assim vc vai ter um problema, ID iguais. O que vc pode fazer eh append as variaveis
    x e y no ID, por exemplo.

2 Seta a propriedade do botao ClientIDMode para ClientIDMode=ClientIDMode.Static, isso vai assegurar que depois que a pagina for renderizada, os IDs nao vao ser alterados. Isso vale se vc adicionar os botoes em paginas que possuem Master Pages, que vc vai ter que adicionar os botao a um ContentPlaceHolder.

Dessa forma vc vai ter sempre os mesmos IDs tanto no server-side como client-side. Ai fica facil saber qual botao foi clicado e qual botao vc precisa alterar as propriedades.

//Daniel

RafaelaG

windsofhell:
Ola Rafaela,

Na verdade tem varios problemas. Primeiramente, vc nao esta definindo um ID para os seus botoes e esta deixando o ASP.NET se encarregar de criar os IDs para voce. Por isso ele cria com esses id estranhos tipo: ‘ctl02’

Dim x As Integer  
      Dim y As Integer  
      For x = 0 To 20  
          For y = 0 To 10  
              Dim botao As New Button  
              With botao  
                  .Visible = True  
                  .Text = "Lugar" & x & y & vbCrLf  
  
              End With  
               
              Me.Controls.Add(botao)  
          Next  
      Next  
  End Sub

O que vc poderia fazer eh :

  1. Definir um id do botao, por exemplo ID=“ButtonQuarto”. Fazendo assim vc vai ter um problema, ID iguais. O que vc pode fazer eh append as variaveis
    x e y no ID, por exemplo.

2 Seta a propriedade do botao ClientIDMode para ClientIDMode=ClientIDMode.Static, isso vai assegurar que depois que a pagina for renderizada, os IDs nao vao ser alterados. Isso vale se vc adicionar os botoes em paginas que possuem Master Pages, que vc vai ter que adicionar os botao a um ContentPlaceHolder.

Dessa forma vc vai ter sempre os mesmos IDs tanto no server-side como client-side. Ai fica facil saber qual botao foi clicado e qual botao vc precisa alterar as propriedades.

//Daniel

Muito Obrigado. Eu essa parte tenho feita, apenas nao coloquei o codigo :slight_smile:

RafaelaG

douglaskd:
um botão quando renderizado em HTML deverá ficar dentro das tags

o Visual Studio quando pré renderiza a página percebe que esta fora e te retorna o erro…

você pode criar um método usando seu código…

e no ASPX você o chama onde deseja, …dentro das tags

E se colocar com as label’s e tentar por como link? (labellink)

Mas se declarar no VB, aparece sempre no final da tela…

antes de mais, Obrigado!

W

RafaelaG:
windsofhell:
Ola Rafaela,

Na verdade tem varios problemas. Primeiramente, vc nao esta definindo um ID para os seus botoes e esta deixando o ASP.NET se encarregar de criar os IDs para voce. Por isso ele cria com esses id estranhos tipo: ‘ctl02’

Dim x As Integer  
      Dim y As Integer  
      For x = 0 To 20  
          For y = 0 To 10  
              Dim botao As New Button  
              With botao  
                  .Visible = True  
                  .Text = "Lugar" & x & y & vbCrLf  
  
              End With  
               
              Me.Controls.Add(botao)  
          Next  
      Next  
  End Sub

O que vc poderia fazer eh :

  1. Definir um id do botao, por exemplo ID=“ButtonQuarto”. Fazendo assim vc vai ter um problema, ID iguais. O que vc pode fazer eh append as variaveis
    x e y no ID, por exemplo.

2 Seta a propriedade do botao ClientIDMode para ClientIDMode=ClientIDMode.Static, isso vai assegurar que depois que a pagina for renderizada, os IDs nao vao ser alterados. Isso vale se vc adicionar os botoes em paginas que possuem Master Pages, que vc vai ter que adicionar os botao a um ContentPlaceHolder.

Dessa forma vc vai ter sempre os mesmos IDs tanto no server-side como client-side. Ai fica facil saber qual botao foi clicado e qual botao vc precisa alterar as propriedades.

//Daniel

Muito Obrigado. Eu essa parte tenho feita, apenas nao coloquei o codigo :slight_smile:

Sim, eu sei que vc fez isso, eu soh coloquei o seu codigo para mostrar que vc nao esta definindo Ids pros botoes que vc esta criando, e vai ser impossivel para voce identifica-los num javascript por exemplo. Vc vai ter que colocar ClienteIDMode = Static e definir um ID.

//Daniel

Criado 4 de dezembro de 2011
Ultima resposta 9 de dez. de 2011
Respostas 6
Participantes 3