Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luka Moura

criação de controles dinâmicos

Recommended Posts

Olá!

 

Estou com mais algumas pequenas dúvidas.

Preciso adicionar drodownlists em um Panel sendo que entre eles um <br>.

 

Já vi um código com GetLiteral mas quando coloco isso o programa dá erro dizendo que esse objeto não foi declarado.

Panel6.Controls.Add(GetLiteral("<br><br>"))

Como coloco essas quebras de linha?

E depois se eu quiser fazer um botão para tirar uma dropdownlist, como destruo este objeto?

 

Obrigada!! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luka de uma olhada neste artigo:

http://www.devmedia.com.br/articles/viewcomp.asp?comp=7058

 

Repare que o GetLiteral não é uma classe do FrameWork, é uma função criada pelo próprio usuário para poder adicionar textos ao HTML.

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi!

 

Entendi que era uma função, já fiz e funcionou.

Fiz um botão com um '+' e quando clico nele deve aparecer sempre uma combo embaixo da outra..

Só que com esse código ele sempre sobrescreve.

 

Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
		If lblcont.Text = "" Then
			lblcont.Text = 1
		Else
			lblcont.Text = lblcont.Text + 1
		End If
		Panel6.Visible = True
		Dim nomecomb As String = "sel" & lblcont.Text
		Dim combo As New DropDownList
		combo.ID = nomecomb
		Panel6.Controls.Add(combo)
		combo.Items.Add(New ListItem("Teste 1"))
		combo.Items.Add(New ListItem("Teste 2"))
		Panel6.Controls.Add(GetLiteral("<br><br>"))
	End Sub

Vlw! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor, me ajudem!

 

Não estou conseguindo... :(

 

Preciso fazer o seguinte:

Quando clico em um botão com o sinal de + irá criar um novo dropdownlist.

Mas quando eu aperto na segunda vez esse botão aparece em cima do antigo.

 

Como crio dropdownlist um embaixo no outro? Com a opção Add ele sobrepõe!

 

Me ajudem pls... obrigada! :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que toda vez que você clica no botão ele entra no Page_load de seu formulário, isso faz com que ele apague o que foi gerado antes, o que você pode fazer é usar um While tratando seu botão. De uma olhada como ficou o código:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
		Session("Montados") = 0
		If Session("Click") Is Nothing Then
			Session("Click") = 0
		Else
			Session("Click") += 1
		End If

		While Session("Montados") <= Session("Click")
			Session("Montados") += 1
			MontaDrop()
		End While
	End Sub

	Protected Sub MontaDrop()
		Panel6.Visible = True
		Dim nomecomb As String = "sel" & Session("Montados")
		Dim combo As New DropDownList
		combo.ID = nomecomb
		Panel6.Controls.Add(combo)
		combo.Items.Add(New ListItem("Teste 1"))
		combo.Items.Add(New ListItem("Teste 2"))
		Panel6.Controls.Add(GetLiteral("<br><br>"))
	End Sub

	Function GetLiteral(ByVal text As String)
		Dim rv As New Literal
		rv.Text = text
		GetLiteral = rv
	End Function

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, obrigada por me responder.

Entendi seu código, mas mesmo assim não consigo pegar o valor que a pessoa escolheu.

 

Por exemplo, preenchi a primeira dropdownlist e quero criar a segunda.. ai perco o resultado..

 

:(

Obrigada de qq jeito!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, isso eu sei..

Mas não sei como pegar esses valores, porque depois que eu crio a dropdownlist não consigo mais pegar o combo.SelectedIndex

E também quando eu crio a combo não consigo criar o método OnSelectedIndex. Entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei com:

AddHandler combo.SelectedIndexChanged, AddressOf combo_SelectedIndexChanged
e é claro definindo sua propriedade AutoPostBack como true, mas ainda não consegui trabalhar com o evento dele, se conseguir posto novamente.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, primeiro quero te agradecer por estar me ajudando!

 

Coloquei esta linha abaixo da criação do objeto, mas o programa sublinha em azul o combo_SelectedIndexChanged e diz 'AddressOf' operand must be the same of a method (without parentheses)

 

Bjs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Consegui colocar o Autopostback, mas quando coloco isso a(s) combos desaparecem ao selecionar algum item.

 

Meu código ficou assim:

Sub combo_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
		lbl2.Text = "OK"
	End Sub
	
	Protected Sub MontaDrop()
		Panel6.Visible = True
		Dim nomecomb As String = "sel" & Session("Montados")
		Dim combo As New DropDownList
		combo.ID = nomecomb
		Panel6.Controls.Add(combo)
		combo.Items.Clear()
		combo.Items.Add(New ListItem("Selecione uma palavra", 0))
		combo.Items.Add(New ListItem("Teste", 1))
		combo.AutoPostBack = True
		AddHandler combo.SelectedIndexChanged, AddressOf combo_SelectedIndexChanged
		Panel6.Controls.Add(GetLiteral("<br><br>"))
	End Sub
	
	Function GetLiteral(ByVal text As String)
		Dim rv As New Literal
		rv.Text = text
		GetLiteral = rv
	End Function

	Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
		Session("Montados") = 0
		If Session("Click") Is Nothing Then
			Session("Click") = 0
		Else
			Session("Click") += 1
		End If

		While Session("Montados") < Session("Click")
			Session("Montados") += 1
			MontaDrop()
		End While
	End Sub

O que pode ser agora?

 

Obrigada :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, um dos problemas que eu encontrei, este eu até consegui resolver mas acabei ocasionando outros. <_< . Toda vez que você da um PostBack ele percorre o Page_Load destruindo tudo o que você criou em tempo de execução.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, e estou fazendo isso tudo dentro de um AJAX, ou seja, de um UpdatePanel para não ter esse problema.

Mas mesmo assim estou com esse problema.

 

Obrigada pela força..

 

Vou tentando..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.