Ir para conteúdo

POWERED BY:

Arquivado

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

Julierme Felix

DropDownlist VS2003

Recommended Posts

Pessoal tenho um formulario de agendamento de horarios e ele usa duas drop para seleção da aulainicial e aualafinal, até aí tudo bem esta funcionando blza. A duvida esta no formulario para alterar os dados caso seja necessário, nesse formulario tenho novamente as drop mas não estou conseguindo fazer com elas mostrem os dados da tabela onde o agendamento esta gravado e ao clica mostrar os dados da tabela de origem das drop para assim então poder alterar os dados já gravados.A tabela tblaulas é de onde os dados vem para preencher o dropdownList e no form de alteração quero que esse dropdownlist apareca preenchido, mas mostrando no primeiro registro o item selecionado no cadastro atual.São duas tabelas: tblreserva e tblaulastblreserva - armazenas os dados agendados no form de agendamentotblaulas - possui os registro para popular a drop no form de agendamento.No form de alteração quero que ao posicionar num registro a drop venha preenchido com o registro atual e ao clicar apareça as opções para alteração caso seja necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega não entendi muito bem todas as suas dúvidas, mas vou tentar ajudar.

 

Para montar um DropDownList dinamicamente:

 

Public Function drop_dinamico(ByVal drop_name As DropDownList, ByVal varSql As String, ByVal descricao As String, ByVal id As Object)
		CheckConn(0) 'Abre Conexão

		Dim cmd_drop As New OleDbCommand(varSql, Conn)

		drop_name.DataValueField = id
		drop_name.DataTextField = descricao
		drop_name.DataSource = cmd_drop.ExecuteReader(CommandBehavior.CloseConnection)
		drop_name.DataBind()

		CheckConn(1) 'Fecha Conexão
	End Function

Para você já trazer um registro do DropDownList selecionado, base usar a propriedade "SelectedValue". Ex:

 

Drop1.SelectedValue = 5

Nesta caso ele vai procurar um registro no DropDownList que possua o DataValueField = 5.

 

Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só eu tenho um form de cadastro, uso para popular a drop o código abaixo.

 

Dim DS As DataSet

Dim DA As SqlDataAdapter

DA = New SqlDataAdapter("select * from tblaulas", Cn)

DS = New DataSet

DA.Fill(DS, "tblaulas")

DropDownList1.DataSource = DS.Tables("tblaulas").DefaultView

DropDownList1.DataTextField = "aula"

DropDownList1.DataValueField = "aula"

DropDownList1.DataBind()

No form cadastro seleciono 1ª Aula ou 2ª Aula ou 3ª Aula ou 4ª Aula ou 5ª Aula ou 6ª Aula

Clico no botão salvar e os dados são armazenados na tabela tblreserva. OK funcionando legal.

Veja a figura abaixo

 

Imagem Postada

 

Digamos que selecionei a 6ª Aula salve os dados OK, mas por um motivo resolvo alterar essa aula para 2ª aula, então criei um form de alteração, nesse form ao selecionar o registro referente o meu agendamento deve trazer na drop os dados salvo no caso 6ª Aula, e ao clicar aparecer as demais opções para então realizar a alteração...É justamente essa parte q não estou conseguindo fazer.

Repare nessa figura do form alterar que o campo cadastro é o campo 6ª Aula, mas a drop esta trazendo 1ª Aula.

Imagem Postada

 

O Código que estou utilizando no form de alteração.

 

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

SqlDataAdapter1.Fill(AlterarDS1)

Cn.Open()

Dim DS As DataSet

Dim DA As SqlDataAdapter

Dim Lin As SqlCommand = Cn.CreateCommand()

Dim dr As SqlDataReader

Dim cb As String = "select aulainicio from tblreserva"

Lin.CommandText = cb

DA = New SqlDataAdapter(Lin)

DS = New DataSet

dr = Lin.ExecuteReader

 

If Not Page.IsPostBack Then

If dr.HasRows() Then

DropDownList1.DataSource = DS.Tables("tblreserva").DefaultView

DropDownList1.DataTextField = "aulainicio"

DropDownList1.DataValueField = "aulainicio"

DropDownList1.DataBind()

DataBind()

DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue("aulainicio"))

End If

 

End If

dr.Close()

Cn.Close()

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acredito que vá resolver, no momento que você busca os dados do banco para preencher seus textBox, você também pode determinar qual item do DropDownList estará selecionado.

 

Primeiro você monta seu Drop como esta fazendo. Depois no momento que esta alimentando seus TextBox, da pra fazer como eu falei.

 

Drop1.SelectedValue = dr.Item("CAMPO")

 

Neste caso se estiver usando um DataReader, eu acredito que usando a opção SelectedValue será mais fácil que a SelectedIndex.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acredito que vá resolver, no momento que você busca os dados do banco para preencher seus textBox, você também pode determinar qual item do DropDownList estará selecionado.Primeiro você monta seu Drop como esta fazendo. Depois no momento que esta alimentando seus TextBox, da pra fazer como eu falei.Drop1.SelectedValue = dr.Item("CAMPO")Neste caso se estiver usando um DataReader, eu acredito que usando a opção SelectedValue será mais fácil que a SelectedIndex.

Eu não quero preencher os textbox a partir da drop, coloquei um textbox só para ver se estava funcionando corretamente o código da drop.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui resolver a questão do posicionamento usando o código abaixo.Private Sub btnproximo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnproximo.Clickeditreg.Text = editreg.Text + 1DataBind()Cn.Open()Dim Lin1 As SqlCommand = Cn.CreateCommand()Dim dr1 As SqlDataReaderDim cb1 As String = "select aulainicio from tblreserva where ID=@dti"Lin1.Parameters.Add("@dti", SqlDbType.NVarChar).Value = Me.editID.TextLin1.CommandText = cb1dr1 = Lin1.ExecuteReaderdr1.Read()If dr1.HasRows() ThenDropDownList1.DataSource = dr1DropDownList1.DataTextField = "aulainicio"DropDownList1.SelectedValue = dr1.Item("aulainicio")dr1.Close()End If Mas agora ao selecionar um item na lista para alterar esta gravando no banco o só o primeiro item.Por exemplo ao agendar escolhi a 6ªAula, no form de alteração escolhi a 4ªaula, mas quando clico em salvar esta salvando a 1ªAula.Como acertar isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver.Estava usando no page load a opção dropdownlist1.SelectedValue =dr.item("aulainicio") e no botão de salvar eu tenho.drAux(0)("AulaInicio") = DropDownList1.SelectedValue então ele estava buscando sempre o valor definido no pageload.Retirei a opção dropdownlist1.SelectedValue =dr.item("aulainicio") do pageload e agora esta blza...Obrigado a todos....

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.