Originariamente inviato da the darkness
mi togli solo una curiosita'?come hai fatto a buttarci dentro tutti i comuni d'italia?
ti sei messo a fare copia e incolla?!?
Dio Buono e Misericordioso
mi vien da dire
ho fatto una pagina server ed ho messo nella pagina:
<script language="javascript" type="text/javascript">
// <!CDATA[
var province = <%=Province %>;
var comuni = <%=Comuni %>;
// ]]>
</script>
dove Province e Comuni sono due property
codice:
Protected ReadOnly Property Province() As String
Get
Dim dt As DataTable = libreria.GetDataTable(StringaConnessioneTest, "select codice_istat_provincia, nome_provincia, codice_istat_regione from q_provincie order by nome_provincia")
Return vettoreToArrayJS(dt)
End Get
End Property
Protected ReadOnly Property Comuni() As String
Get
Dim dt As DataTable = libreria.GetDataTable(StringaConnessioneTest, "select id_comune, nome_comune, codice_istat_provincia from q_comuni order by nome_comune")
Return vettoreToArrayJS(dt)
End Get
End Property
mentre il dropdown delle regioni è caricato nel load della pagina
codice:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As DataTable = libreria.GetDataTable(StringaConnessioneTest, "select codice_istat_regione, nome_regione from regioni order by nome_regione")
libreria.FillListControl(Me.DropDownList_regioni, dt.DefaultView, "nome_regione", "codice_istat_regione")
End Sub
vettoreToArrayJS è invece una procedura che scandisce un DataTable e restituisce un vettore javascript bidimensionale
codice:
'----------------------------------------------------------------------------------------
'restituisce un vettore bidimensionale letterale javascript tipo
'[ ["28001", "ABANO TERME"], ["98001", "ABBADIA CERRETO"], ["97001", "ABBADIA LARIANA"] ]
'----------------------------------------------------------------------------------------
Public Function vettoreToArrayJS$(ByVal a As DataTable)
Const Delimitatore$ = """"
Dim i%, j%, r%, c%
Dim vjs As New StringBuilder()
Dim t As New StringBuilder()
r = a.Rows.Count - 1 'indice max riga. Righe = r+1
c = a.Columns.Count - 1 'indice max colonne. Colonne = c+1
vjs.Length = 0
vjs.Append("[ ")
For i = 0 To r
t.Length = 0
t.Append("[")
For j = 0 To c
If j > 0 Then t.Append(", ")
t.Append(Delimitatore)
t.Append(valoreCella(a.Rows(i)(j), a.Columns(j)))
t.Append(Delimitatore)
Next
t.Append("]")
If i > 0 Then vjs.Append(", ")
vjs.Append(t)
Next
vjs.Append(" ]")
Return vjs.ToString()
End Function
Naturalmente poi basta prendere l'html prodotto e usarlo come pare.
Soddisfatta la curiosita?