+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [ASP.NET] Javascript e passaggio Array

  1. #1
    mikeee non è in linea Scolaretto
    Luogo
    Italy
    Post
    226

    Lightbulb [ASP.NET] Javascript e passaggio Array

    Ciao a tutti!!!
    Ho una funzione in javascript su body onload="runNameFunction()"

    La funzione al suo interno contiene un array:

    ArrayName = new Array()
    ArrayName [0] = '00.gif'
    ArrayName [1] = '01.gif'
    ArrayName [2] = '02.gif'
    ArrayName [3] = '03.gif'
    ArrayName [4] = '04.gif'
    ArrayName [5] = '05.gif'
    ArrayName [6] = '06.gif'

    L'array contiene nomi di file img.. però il tutto è statico..... vorrei caricare l'array direttamente da codice vb.net, magari su..

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    .......
    .........
    End Sub

    Quindi il mio pensiero è:
    Come posso passare delle variabili da Vb.net a javascript?????
    l'ignoranza è temporanea ....... la stupidità è per sempre.

  2. #2
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...puoi memorizzare gli elementi in qualsiasi struttura che puoi leggere da entrambi gli ambienti(server e client)...per esempio se stai usando il Framework 2.0 puoi usare il controllo server HiddenField valorizzarlo nel page_load e poi lato client fare una funzione che legge il contenuto dell'elemento Hidden....

  3. #3
    mikeee non è in linea Scolaretto
    Luogo
    Italy
    Post
    226
    Scusami SignIn per la mia ignoranza in javascript, come posso leggere l'HiddenField?
    l'ignoranza è temporanea ....... la stupidità è per sempre.

  4. #4
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...bhè la funzione di lettura può essere simile a questa:
    codice:
    <script language="javascript">
        function Read()
        {
            var element = document.getElementById( "HiddenId");
            if (element != null)
            {
                var valore = element.value;
            }
        }
        </script>
    ...dipende da come implementi il tutto, nel senso che puoi popolare il campo hidden separando i valori con un separatore(var1;var2;var3;ecc)...ora nella funzione js una volta recuperata la property value devi effettuare uno split(tra i metodi di javascript trovi appunto split che ritorna un array) per il carattere separatore e riempire il tuo array

  5. #5
    mikeee non è in linea Scolaretto
    Luogo
    Italy
    Post
    226

    Question

    Ci sono quasi riuscito, solo ancora un piccolo aiutino:


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Page.RegisterArrayDeclaration("arr", " 'enter03.gif','2','3' ") 'Prova Array da inviare a javascript
    End Sub


    Poi su javascript ho:

    <head runat="server">
    <title>Pagina senza titolo</title>
    <script type="text/javascript" language="JavaScript">
    <!--
    var slideShowSpeed = 5000

    var crossFadeDuration = 3

    var Pic = new Array()

    Pic[0] = '00.gif'
    Pic[1] = '01.gif'
    Pic[2] = '02.gif'
    Pic[3] = '03.gif'
    Pic[4] = '04.gif'
    Pic[5] = '05.gif'
    Pic[6] = '06.gif'
    Pic[7] = arr[0]

    var t
    var j = 0
    var p = Pic.length

    var preLoad = new Array()
    for (i = 0; i < p; i++){
    preLoad[i] = new Image()
    preLoad[i].src = Pic[i]
    }

    function runSlideShow(){
    .........
    ....

    Quindi su
    Pic[7] = arr[0]
    dovrebbe inserire 'enter03.gif'

    E invece No!!!
    Controllo il codice html generato e vedo:

    <script type="text/javascript">
    //<![CDATA[
    var arr = new Array( 'enter03.gif','2','3' );
    //]]>
    </script>

    in coda al file quindi quando legge la prima parte del codice si ritrova questa variabile arr[0] non assegnata infatti genera un errore... poi più avanti viene assegnata... ma ormai è troppo tardi..
    Come posso fare?
    l'ignoranza è temporanea ....... la stupidità è per sempre.

  6. #6
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...vedo che hai seguito una strada diversa da quel che ti ho indicato...
    ...ad ogni modo oltre al fatto che il metodo RegisterArrayDeclaration è targato come obsoleto in ASP.NET 2.0 quindi dovresti sostituirlo con:
    codice:
    ClientScript.RegisterArrayDeclaration("arr", "prova,testo")
    è necessario spostare la parte di script di valorizzazione/assegnazione dell'array in basso, cioè prima della chiusura del tag body

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi