Hallojs! Gjorde ett litet test, och det här fungerar: Mitt förslag: Tack så grymt mycket för hjälpen (ALLA).Problem med Dictionary
Har grymma problem med presentation av ett Dictionary-objekt.
koden ser ut enligt nedan:
<code>
<select name="sel_pgrp" ID="sel_pgrp" onchange="dropProductGroupsChanged();" style="width:100%;" title="Select">
<option value=""><% = properties.SRC_PRODGRP%></option>
<%
dim prodgrps
dim keys
set prodgrps = Server.CreateObject("Scripting.Dictionary")
set prodgrps = itemMgt.GetProductGroups()
keys = prodgrps.keys
on error resume next
for ppp = 0 to prodgrps.Count-1
%>
<option value="<% =keys(ppp)%>" title="<%%>"><%=prodgrps(keys(ppp))%></option>
<%
next
set prodgrps = nothing
%>
</select>
</code>
Enligt en bok och flera forum SKALL det gå att komma åt både nycklarna och posterna via en ovanstående operation, MEN det vägrar att fungera. Tilläggas bör att funktionen GetProductGroups() ligger i en VB6-komponent (klassen itemMgt). Jag lyckas bara komma åt nycklarna om jag loopar med <code>for each itm in prodgrps.keys</code> och posterna om jag loopar <code>for each itm in prodgrps.items</code>. Någon som har lite input?Sv: Problem med Dictionary
<code>Dim objTest, strKey
Set objTest = Server.CreateObject("Scripting.Dictionary")
objTest.Add "frukt", "banan"
objTest.Add "bil", "Volvo"
objTest.Add "fisk", "gös"
For each strKey in objTest
%><%=strKey%> = <%=objTest(strKey)%><br><%
Next
</code>Sv: Problem med Dictionary
<code>
<SELECT name="sel_pgrp" ID="sel_pgrp" onchange="dropProductGroupsChanged();" style="width:100%;" title="Select">
<OPTION value=""><% = properties.SRC_PRODGRP%></OPTION>
<%
Dim Key
Dim ProdGrps
Set ProdGrps = itemMgt.GetProductGroups()
For Each Key In ProdGrps.Keys
Response.Write "<OPTION value=""" & Server.HTMLEncode(Key) & """>" & Server.HTMLEncode(ProdGrps.Item(Key)) & "</OPTION>"
Next
Set ProdGrps = Nothing
%>
</SELECT>
</code>
Jag rekomenderar att du inte utelämnar namnen på medlemmar/metoder, som i Guffa's exempel.
Utan använder namnet för medlemmar/metoder på objektet du anropar. Detta gör koden tydligare och i vissa fall effektivare.Sv: Problem med Dictionary
Nu var det så här faktiskt att eg. så fungerade ovanstående fint, men dock var det så att det låg objekt lagrade i mitt dictionary vilket gjorde att jag var tvungen att hänga på en <code>.prodgrp</code> efter för att det skulle funka.