1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em ASP

Discussão em 'Web Development' iniciada por Canochas, 11 de Junho de 2007. (Respostas: 2; Visualizações: 621)

  1. 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
     
  2. alfinete

    alfinete Power Member

    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



    Código:
    
    
    
        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

    Código:
    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:

    Código:
     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



    Código:
     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

    Código:
    
     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

    Código:
      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

    Código:
    
    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

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

    espero que te ajude esta dica
     

Partilhar esta Página