Przeprojektowuję część strony internetowej, aby ułatwić jej aktualizację w przyszłości. Obecnie jest to seria tabel, które są zakodowane na sztywno. Aby przeprojektować tabelę (na przykład alfabetyzować ją tak, jak chcę), należy ręcznie zamieniać wiele wartości w html.Jak zaimplementować tablicę w vbscript o zmiennej wielkości
Oto, co chciałbym zrobić: Utwórz obiekt url_Link ze zmienną tytułu i łącza, aby zachować nazwę wyświetlaną i adres URL. Utwórz tablicę obiektów url_Link i zapełnij ją w górnej części pliku .asp strony. Wykonaj dla każdej pętli na tych tablicach, aby zbudować i wypełnić tabelę
To nie jest takie złe, ale mam dwa problemy. Po pierwsze, nie chciałbym definiować rozmiaru tablicy, ponieważ tworzy to drugie miejsce, które musi zostać zmienione po wprowadzeniu zmian w liczbie łączy. Pojawi się pewna logika, która uniemożliwi wyświetlanie niektórych obiektów url_Link (na przykład niektórzy użytkownicy nie mogą uzyskać dostępu do niektórych stron, więc nie zobaczą odsyłaczy), a to spowoduje problemy podczas wymiarowania tablic.
Wiem, że mogłem po prostu utworzyć tablice o dużym rozmiarze, ale wydaje mi się to marnotrawstwem (i nie wiem, jak działają poszczególne funkcje i nie chcę, aby pojawiły się całe zestawy pustych wierszy).
Co mogę zrobić, aby rozwiązać te problemy? Nie mam zbyt dużej wiedzy w vbscript, a większość kodu, z którym pracowałem, nie korzysta z tablic ani obiektów.
AKTUALIZACJA: Próbowałem używać Redim PRESERVE do przycinania nadmiaru tłuszczu z nadwymiarowej tablicy. Problem polega na tym, że w niektórych przypadkach moja tablica jest wypełniana przez mniejsze ilości obiektów niż jej maksymalny rozmiar z powodu warunków. Powoduje to problemy później, kiedy używam pętli for (próbowałem dostać dla każdej z nich do pracy i to nie dzieje się w tej chwili). I pojawia się błąd „Ta tablica jest stałe lub tymczasowo zablokowany” na Redim linii
Kod:
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)" tworzy stałą tablicę (bez możliwości ponownego odczytu) z 2 elementami indeksowanymi 0 i 1. Użyj "Dim a: a = Array()" lub "ReDim a (-1)" do utwórz pustą tablicę ReDim. –