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.
Pessoal é algo deste genero:
[code] 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[/code]
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.
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
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 :
- 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
[quote=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 :
- 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[/quote]
Muito Obrigado. Eu essa parte tenho feita, apenas nao coloquei o codigo ![:slight_smile: :slight_smile:](//www.guj.com.br/images/emoji/twitter/slight_smile.png?v=5)
[quote=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 [/quote]
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!
[quote=RafaelaG][quote=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 :
- 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[/quote]
Muito Obrigado. Eu essa parte tenho feita, apenas nao coloquei o codigo ![:slight_smile: :slight_smile:](//www.guj.com.br/images/emoji/twitter/slight_smile.png?v=5)
[/quote]
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