View Full Version : Ajuda em ASP


Canochas
11-06-2007, 12:26
Olá malta. Atiraram-me para cima um trabalho em ASP (no qual nunca programei antes), que consiste no acesso remoto via web a uma base de dados em ACCESS, que já está feito.

O que eu tenho de fazer e tenho estado a partir a cabeça é uma página de pesquisa, mais ou menos nestes moldes: tenho uma tabela com os atributos que quero que apareça na pesquisa (por exemplo título do filme, realizador, ano do filme) e que me apareça numa combo box estes valores. Isto está feito.

O que me falta e estou a partir a cabeça é fazer uma 2ª Combo Box que, dependendo da escolha da 1ª, altere o SQL que está por detrás dela (o atributo ListRowSource, penso eu).

Alguém me consegue ajudar? Obrigado

Canochas
14-06-2007, 13:49
Alguém?

alfinete
14-06-2007, 16:18
não estou a perceber muito bem essa dica

mas se o codigo que tiveres pro detraz do asp.net for vb.net

crias uma frid view no asp.net, e vais ao teu code neste caso vd.net, ou seja
ao file_que_tem_agrig.asp.vb







Inherits System.Web.UI.Page

sub grid_view_titulofilme()
' cria a variavel ligação que vai chamar a string do caminho da Bd
' cria a variavel strsql que vai chamar a a pesquiza sql
Dim ligacao, strsql As String
' cria data adapter
Dim sda As SqlDataAdapter
' cria dataset
Dim ds As DataSet




' da o caminho da Bd
ligacao = "data source=(local);initial catalog=Pedidos;" & _
"integrated security=SSPI;persist security info=True"

' faz a pesquiza desejada

strsql = "SELECT [Nome Utilizador]," & _
"Mail,Tipo_Utilizador FROM Tab_Utilizadores "

sda = New SqlDataAdapter(strsql, ligacao)
ds = New DataSet()
sda.Fill(ds)
sda.Dispose()
Me.GridView_UTILIZADORES.DataSource = ds

DataBind()
End Sub








nexte escerto


Me.GridView_Utilizadores.DataSource = ds


onde esta gridview_utilizadores pões o nome da tua grid

nota: a minha bd é em sql server mas , se a tua for feita noutro aplicativo

se não me angano so mudas a sintaxe deste code:


ligacao = "data source=(local);initial catalog=Pedidos;" & _
"integrated security=SSPI;persist security info=True"




como tens uma combo , tens de criar ou uma função diferente com a mesma grid so mudas é code visto a baixo, fazendo um select diferente

OU CRIAS UMA FUNÇÃO DIFERENTE PARA CADA GRIDVIEW , COM O MESMO CODE, E SO MUDA O SELECT, E O NOME DA GRID




strsql = "SELECT [Nome Utilizador]," & _
"Mail,Tipo_Utilizador FROM Tab_Utilizadores "


______________________________________

depois na combo no teu caso com tens (título do filme, realizador, ano do filme)

no eventO page init do asp para chameres os items da cbo_box



Me.cbo_PESQUIZA.Items.Add("")

cbo_PESQUIZA.Items.Add("tITULO FILME")
cbo_PESQUIZA.Items.Add("REALIZADOR")
cbo_PESQUIZA.Items.Add("ANO DE FILME")




NO EVENTO LOAD DO FORM PÕES
tdas as grids que tiveres com visible a false a false
a unica coisa que poes visivel é a combo de pesquiza


Me.GridView_titulofilme.VISIBLE=false
Me.GridView_realizador.VISIBLE=false


NO EVENTO SELECT INDEX da combo box fazes, isto de fizerers 3 grids uma com cada pesquiza



Protected Sub cbo_PESQUIZA_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbo_tipo.SelectedIndexChanged

If Me.cbo_tipo.SelectedIndex = 1 Then 'index do titulofilme

grid_view_titulofilme()
Me.GridView_titulofilme.VISIBLE=true
Me.GridView_realizador.VISIBLE=false
Me.GridView_anofilme.VISIBLE=false
End If

If Me.cbo_tipo.SelectedIndex = 2 Then ' index do realizador
grid_view_ realizador()
Me.GridView_titulofilme.VISIBLE=false
Me.GridView_realizador.VISIBLE=true
Me.GridView_anofilme.VISIBLE=false
End If


End Sub





depois conforme o numero de items que tens assim crias

um novo

If Me.cbo_tipo.SelectedIndex=index (posção da string na cbo_box)
a cbobox começa sempre do 0 sendo essa a primeira

______________

no code asp.net da combo_box tens de por



OnSelectedIndexChanged="nome da função change que criaste para essa combo"
AutoPostBack="True



espero que te ajude esta dica