Sto riprogettando una parte di una pagina Web per rendere più facile l'aggiornamento in futuro. Attualmente, è una serie di tabelle, che sono hard-coded. Per ridisegnare la tabella (ad esempio, per alfabetizzarla come voglio), è necessario scambiare manualmente molti valori in html.Come implementare un array in vbscript con una dimensione variabile
Questo è quello che mi piacerebbe fare: Creare un oggetto url_Link con un titolo e una variabile di collegamento, per mantenere rispettivamente il nome visualizzato e l'url. Creare una matrice di oggetti url_Link e compilarla nella parte superiore del file .asp per la pagina. Esegui a ogni ciclo su quegli array per compilare e popolare la tabella
Questo non è poi così male, ma ho incontrato due problemi. Per prima cosa, non mi piacerebbe dover definire la dimensione dell'array, poiché questo rende un secondo posto che deve essere cambiato quando vengono apportate modifiche al numero di collegamenti. Ci sarà un po 'di logica per impedire la visualizzazione di alcuni oggetti url_Link (ad esempio, alcuni utenti non possono accedere ad alcune pagine, quindi non vedranno i link), e ciò causerebbe problemi quando si dimensionano gli array.
So che potrei semplicemente creare array di grandi dimensioni, ma questo mi sembra uno spreco (e non so come per ogni funzione e non voglio che vengano visualizzate un mucchio di righe vuote).
Cosa posso fare per risolvere questi problemi? Non sono molto esperto in vbscript e la maggior parte del codice con cui ho lavorato non sfrutta gli array o gli oggetti.
AGGIORNAMENTO: Ho provato a utilizzare una PRESERVAZIONE di redim. Per ridurre il grasso in eccesso di un array di grandi dimensioni. Il problema è che in alcuni casi, il mio array è popolato da piccole quantità di oggetti rispetto alla sua dimensione massima a causa delle condizioni if. Ciò sta causando problemi in seguito quando uso un ciclo for (ho cercato di far funzionare uno per ciascuno e questo non sta accadendo al momento). Ottengo l'errore "Questa matrice è fissa o temporaneamente bloccato" sulla linea ReDim
Codice:
dim systemSettingsArray(1)
arrayCounter = 0
if ADMIN = "Y" then
set systemSettingsArray(arrayCounter) = (new url_Link).Init("Account Administration","Maintenance/Account_Admin.asp")
arrayCounter = arrayCounter + 1
end if
set systemSettingsArray(arrayCounter) = (new url_Link).Init("Time Approval","Maintenance/system_Time_Approval.asp")
redim Preserve systemSettingsArray(arrayCounter)
"Dim a (1)" crea un array fisso (non-ReDim-able) con 2 elementi indicizzati 0 e 1. Utilizzare "Dim a: a = Array()" o "ReDim a (-1)" per creare un array vuoto RiDim-capable. –