25 messaggi dal 30 ottobre 2011
Ciao a tutti,
è possibile passare un array da un file miofile.aspx.vb ad una porzione di codice javascript nel file miofile.aspx?

Spiego meglio: ho bisogno di creare una text con intellisense con dati presi da DB.

questo è il mio codice (esempio) della pagina miofile.aspx per la realizzazione della text

<script type="text/javascript">
      
  var a1;
 jQuery(function() {
  a1 = $('#comuni').autocomplete({
      width: 150,
      delimiter: /(,|;)\s*/,
      lookup: 'Roma,Milano,Firenze,Bari,Napoli,Venezia,Verona,Forlì,Torino'.split(',')
    });
 });

</script>

[...]

<input type="text" name="q" id="comuni" class="textbox" />


Avrei bisogno di sostituire l'array di comuni scritto manualmente con un array di dati presi da DB.

Nel file miofile.aspx.vb creo l'array in questo modo:
Protected comuni As New ArrayList()

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim cn As New MySqlConnection(cntxt)
        'Oggetto command per mysql 
        Dim cm As New MySqlCommand("SELECT nome FROM comuni", cn)
        Dim mydata As New DataTable

        [...]

        Dim count As Integer
        count = mydata.Rows.Count

        For i As Integer = 0 To count - 1
            comuni.Add(mydata.Rows(i).ItemArray)
        Next
        
    End Sub


come posso fare a passar i dati del mio arrayVB ad un arrayJS?

Vi ringrazio in anticipo! ;)
mi vengono in mente vari modi. Puoi registrare da vb la variabile js con l'array di dati e poi passarla al tuo javascript. Oppure creare una variabile protected nel tuo code behind (da provare se accetta l'array, altrimenti stringa)e poi assegnarla al js tramite <%=
Sicuramente la prima soluzione è la migliore.

Ormai programmano tutti... ma la professionalità appartiene a pochi
25 messaggi dal 30 ottobre 2011
Ti ringrazio manuel0081. Ho provato a studiarmi queste soluzioni, ma con nessun risultato purtroppo. Non sono esperto nè di Asp.net nè di Javascript, sto imparando.

premesso il codice che ho postato precedentemente ho provato a richiamare l'array vb da javascript in questo modo:

var comuni = [];
comuni[0] = '<%=comuni(0)%>';


se avesse prodotto un risultato avrei pensato ad un ciclo per creare l'array javascript. ma non ho ottenuto il risultato desiderato.
Dalla console javascript del browser si evidenziava questo:

var comuni = [];
comuni = 'System.Object[]';

In cosa sbaglio?
Premesso che questa non è la soluzione ideale proviamoci :D
Già stai chiamando le variabili tutte allo stesso modo, prova a differenziare i nomi.

var comuni = [];
comuni[0] = '<%=ComuniDaCodice(0)%>';

ComuniDaCodice è una proprietà protected nel codice in vb.net che tu hai valorizzato.

Ormai programmano tutti... ma la professionalità appartiene a pochi
25 messaggi dal 30 ottobre 2011
Ti ringrazio manuel0081, ma il problema non è il nome della variabile, perchè ho passato altre variabili che avevano lo stesso nome in VB e JS e va perfettamente, il problema è che non passo una variabile ma un array. Ho provato a differenziare i nomi, come consigliato, e il risultato è identico.
Se l'altra soluzione dovesse essere migliore, potresti provare a spiegarmela meglio o indicarmi dove posso trovare maggiori informazioni?

Grazie.
Scusate, ma secondo me il vostro approccio è fortemente sbagliato: i comuni sono migliaia, non è pensabile includerli in un array javascript in pagina!!

La soluzione è realizzare un http handler ed effettuare la chiamata tramite ajax.

Date un'occhiata qui.
http://www.aspitalia.com/script/1053/Gestire-Coppie-Chiavevalore-Autocomplete-JQuery-UI-ASP.NET.aspx

Ciao,
m.
Ah scusate!!! io parlavo di una sola stringa, non di tutti i comuni d'italia

Ormai programmano tutti... ma la professionalità appartiene a pochi
25 messaggi dal 30 ottobre 2011
scusate se non ho più risposto. ho risolto con un repeater. Grazie mille comunque!!!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.