• User

    Gestione Frame (aiuto)

    il mio problema è molto semplice ,ho una pagina che contiene 2 frame.

     
    ...
    </head>
    <frameset cols="5%,*" frameborder="NO" border="0" framespacing="0" rows="*"> 
      <frame name="MusicFrame" src="pages/Music.aspx">
      <frame name="SiteFrame" src="pages/Home.aspx">
    </frameset>
    <body id="bodya" runat="server">
    </body>
    </html>
    
    

    Nel secondo frame(siteframe) ho una pagina aspx che al clik di un pulsante va a cambiarmi il contenuto del primo frame. Per fare questo uso questo metodo:

     
    Partial Class _Home
        Inherits System.Web.UI.Page
        Dim bodya As New HtmlGenericControl
    ........
        Protected Sub Ibt_AudioOFF_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Ibt_AudioOFF.Click
     'così
            body.Attributes.Add("onload", "top.Frames(0).location.href='../pages/NoMusic.aspx'")
     
     'Oppure
     body.Attributes.Add("onload", "window.parent.Frames(0).location.href='../pages/NoMusic.aspx'")
        End Sub
    
    

    Così facendo semplicemente non funziona ,non succede nulla ,ne errore ne niente. Cosa non va proprio non lo capisco.
    Ovviamente voglio usare questo metodo o simili perchè la pagina da cambiare nel frame cambia in base alla dinamicità della pagina che è stata già interamente scritta in vb.net
    Giusto per la cronaca se scrivo questo nel codice html della pagina contenuta nel secondo frame tutto funziona alla perfezione ,solo che non è dinamica.

       <INPUT TYPE="BUTTON" NAME="CMD2" VALUE="NAVIGATE">
       <SCRIPT LANGUAGE=VBSCRIPT>
       <!--
          SUB CMD2_ONCLICK()
             WINDOW.PARENT.FRAMES(0).LOCATION.HREF="NoMusic.aspx"
          END SUB
       -->
       </SCRIPT>
    

    Perdonate la mia scarsa conoscenza o forse l'errore madornale ,ma non so più che pesci pigliare ed il cliente mi sta stressando che vuole la soluzione funzionante.
    Grazie a tutti.


  • User

    rilancio la discussione, ho lo stesso problema


  • Super User

    Ciao, non usare frame. Trova un'altra soluzione.


  • User

    @cali1981 said:

    Ciao, non usare frame. Trova un'altra soluzione.
    scrivo qui,
    ma come faccio a non usare i frame ?
    io voglio una parte della pagina con i comandi
    ed un altra dove ci carico quello che voglio


  • User

    io ho risolto per ora cosi'

    Response.Write "<script language='javascript'>"
    Response.Write "parent.left.location = '" & adr &"';" 'adr variabile con l'indirizzo
    Response.Write "</script>"

    cioe' ASP chiama javascript

    pero' e' un po una pezza, mi sembra strano che ASP non gestisca queste cose


  • User

    scusate posso fare variabili globali, cioe' indipendenti dal frame
    es. ho tre frame
    left ==> uno.asp
    center ==> due.asp
    right ==> tre.asp
    le variabili dichiarate in uno.asp possono essere visibili in due.asp ?

    se no come faccio a fare un programma con un solo frame
    ma con la pagina divisa in piu' parti ?

    grazie


  • Super User

    Ciao, le variabili non sono visibili tra le diverse pagine, ma puoi usare la session


  • User

    @cali1981 said:

    Ciao, le variabili non sono visibili tra le diverse pagine, ma puoi usare la session
    OK
    ho risolto cosi
    Session("id_cliente") = rs.fields("id")
    Session("ragione_sociale") = rs.fields("ragione_sociale")
    Session("indirizzo") = rs.fields("indirizzo")
    e in un altro file .ASP
    response.write Session("ragione_sociale")

    ogni client ha la sua variabile id_cliente

    posso usare anche Application in questo caso la variabile e' condivisa tra i client perche e' situata nel server

    ma la domanda che faccio ora e' posso fare strutture tipo record, array, tabelle, liste, classi di oggetti da condividere tra differenti frame ?


  • Super User

    penso si possano mettere anche quelle in sessione, ma non so quanto ti convenga incasinarla così tanto