garethtnash
asked on
ASP Multiple Select List Box
Hello,
I am using an HTML Listbox control in my ASP page. I am using it with "Allow
Multiple Selections" option set to true.
Now on my EDIT page I am unsure how to within a listbox display all of the options that have been selected?
At present my code just selects the first?
Here it is -
I am using an HTML Listbox control in my ASP page. I am using it with "Allow
Multiple Selections" option set to true.
Now on my EDIT page I am unsure how to within a listbox display all of the options that have been selected?
At present my code just selects the first?
Here it is -
<select name="category" size="8" multiple="multiple" id="category">
<option value="" <%If (Not isNull((RsSelectedCategories.Fields.Item("ID").Value))) Then If ("" = CStr((RsSelectedCategories.Fields.Item("ID").Value))) Then Response.Write("selected=""selected""") : Response.Write("")%>></option>
<%
While (NOT RsCategoriesOptions.EOF)
%>
<option value="<%=(RsCategoriesOptions.Fields.Item("ID").Value)%>" <%If (Not isNull((RsSelectedCategories.Fields.Item("ID").Value))) Then If (CStr(RsCategoriesOptions.Fields.Item("ID").Value) = CStr((RsSelectedCategories.Fields.Item("ID").Value))) Then Response.Write("selected=""selected""") : Response.Write("")%> ><%=(RsCategoriesOptions.Fields.Item("Category-label").Value)%></option>
<%
RsCategoriesOptions.MoveNext()
Wend
If (RsCategoriesOptions.CursorType > 0) Then
RsCategoriesOptions.MoveFirst
Else
RsCategoriesOptions.Requery
End If
%>
Do i need extra loop in here?
Thank you
</select>
ASKER
Hi Pateljitu, sorry no joy, it just repeats the
RsSelectedCategories Option three times (I know that there are 3 records here)
I can't see the other
RsCategoriesOptions Options;
For clarity
RsCategoriesOptions Options; are the original options
RsSelectedCategories are the selected options
Thanks in advance -
RsSelectedCategories Option three times (I know that there are 3 records here)
I can't see the other
RsCategoriesOptions Options;
For clarity
RsCategoriesOptions Options; are the original options
RsSelectedCategories are the selected options
Thanks in advance -
Please try this:
<select name="category" size="8" multiple="multiple" id="category">
<option value="" <%If (Not isNull((RsSelectedCategori es.Fields. Item("ID") .Value))) Then If ("" = CStr((RsSelectedCategories .Fields.It em("ID").V alue))) Then Response.Write("selected=" "selected" "") : Response.Write("")%>></opt ion>
<%
While (NOT RsCategoriesOptions.EOF)
%>
<option value="<%=(RsCategoriesOpt ions.Field s.Item("ID ").Value)% >"
<%
do While NOT RsSelectedCategories.EOF
If (Not isNull((RsSelectedCategori es.Fields. Item("ID") .Value))) Then
If (CStr(RsCategoriesOptions. Fields.Ite m("ID").Va lue) = CStr((RsSelectedCategories .Fields.It em("ID").V alue))) Then
Response.Write("selected=" "selected" "")
exit do
end if
End if
RsSelectedCategories.MoveN ext()
loop
%>
><%=(RsCategoriesOptions.F ields.Item ("Category -label").V alue)%></o ption>
<%
RsCategoriesOptions.MoveNe xt()
Wend
If (RsCategoriesOptions.Curso rType > 0) Then
RsCategoriesOptions.MoveFi rst
Else
RsCategoriesOptions.Requer y
End If
%>
<select name="category" size="8" multiple="multiple" id="category">
<option value="" <%If (Not isNull((RsSelectedCategori
<%
While (NOT RsCategoriesOptions.EOF)
%>
<option value="<%=(RsCategoriesOpt
<%
do While NOT RsSelectedCategories.EOF
If (Not isNull((RsSelectedCategori
If (CStr(RsCategoriesOptions.
Response.Write("selected="
exit do
end if
End if
RsSelectedCategories.MoveN
loop
%>
><%=(RsCategoriesOptions.F
<%
RsCategoriesOptions.MoveNe
Wend
If (RsCategoriesOptions.Curso
RsCategoriesOptions.MoveFi
Else
RsCategoriesOptions.Requer
End If
%>
ASKER
Close,
that gives me all of the products that were previously selected, butt none of the other options?
Almost there - I think?
that gives me all of the products that were previously selected, butt none of the other options?
Almost there - I think?
You mean not all records from recordset "RsCategoriesOptions" are getting displayed.
ASKER
thats correct
ASKER
none of the unselected ones
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi Pateljitu,
That is fantastic thank you - the following works a treat --
Thank you
That is fantastic thank you - the following works a treat --
<select name="category" size="4" multiple="multiple" id="category">
<%
While (NOT RsCategoriesOptions.EOF)
%>
<option value="<%=(RsCategoriesOptions.Fields.Item("ID").Value)%>"
<%
do While NOT RsSelectedCategories.EOF
If (Not isNull((RsSelectedCategories.Fields.Item("ID").Value))) Then
If (CStr(RsCategoriesOptions.Fields.Item("ID").Value) = CStr((RsSelectedCategories.Fields.Item("ID").Value))) Then
Response.Write(" selected=""selected"" ")
exit do
end if
End if
RsSelectedCategories.MoveNext()
loop
%>
><%=(RsCategoriesOptions.Fields.Item("Category-label").Value)%></option>
<%
RsCategoriesOptions.MoveNext()
Wend
%>
</select>
Thank you
ASKER
First Class - thank you
ASKER
Hi Pateljitu,
Sorry to trouble you, I've tried using your logic on another select box with multiple options on the page but to no joy, would you mind having a look please --
The page in question is here
For the ID value 39 --
this ;
Select R.RelatedProductID as ID from dbo. [Direct-Related-Products] R where R.ProductID = 39
Produces the following results -
ID
16
17
18
19
this; SELECT ID, [Product-Name] FROM dbo.[Direct-Product] WHERE [Display-TGI-Direct] = 'Y' AND ID <> 39 ORDER BY [Product-Name]
Produces the following results -
ID Product-Name
40 final Test Hopefully ££$
16 Product1
17 Product2
18 Product3
19 Product4
So Products 1 - 4 should be highlighted, but are not...
Please advise.
Many thanks
Sorry to trouble you, I've tried using your logic on another select box with multiple options on the page but to no joy, would you mind having a look please --
<%
Dim RsRelatedProductOptions__MMColParam
RsRelatedProductOptions__MMColParam = "0"
If (Request("ID") <> "") Then
RsRelatedProductOptions__MMColParam = Request("ID")
End If
%>
<%
Dim RsRelatedProductOptions
Dim RsRelatedProductOptions_cmd
Dim RsRelatedProductOptions_numRows
Set RsRelatedProductOptions_cmd = Server.CreateObject ("ADODB.Command")
RsRelatedProductOptions_cmd.ActiveConnection = MM_GolfConnection_STRING
RsRelatedProductOptions_cmd.CommandText = "SELECT ID, [Product-Name] FROM dbo.[Direct-Product] WHERE [Display-TGI-Direct] = 'Y' AND ID <> ? ORDER BY [Product-Name]"
RsRelatedProductOptions_cmd.Prepared = true
RsRelatedProductOptions_cmd.Parameters.Append RsRelatedProductOptions_cmd.CreateParameter("param1", 5, 1, -1, RsRelatedProductOptions__MMColParam) ' adDouble
Set RsRelatedProductOptions = RsRelatedProductOptions_cmd.Execute
RsRelatedProductOptions_numRows = 0
%>
<%
Dim RsRelated__MMColParam
RsRelated__MMColParam = "0"
If (Request("ID") <> "") Then
RsRelated__MMColParam = Request("ID")
End If
%>
<%
Dim RsRelated
Dim RsRelated_cmd
Dim RsRelated_numRows
Set RsRelated_cmd = Server.CreateObject ("ADODB.Command")
RsRelated_cmd.ActiveConnection = MM_GolfConnection_STRING
RsRelated_cmd.CommandText = "Select R.RelatedProductID as ID from dbo. [Direct-Related-Products] R where R.ProductID = ?"
RsRelated_cmd.Prepared = true
RsRelated_cmd.Parameters.Append RsRelated_cmd.CreateParameter("param1", 5, 1, -1, RsRelated__MMColParam) ' adDouble
Set RsRelated = RsRelated_cmd.Execute
RsRelated_numRows = 0
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<select name="category" size="4" multiple="multiple" id="category">
<%
While (NOT RsRelatedProductOptions.EOF)
%>
<option value="<%=(RsRelatedProductOptions.Fields.Item("ID").Value)%>"
<%
do While NOT RsRelated.EOF
If (Not isNull((RsRelated.Fields.Item("ID").Value))) Then
If (CStr(RsRelatedProductOptions.Fields.Item("ID").Value) = CStr((RsRelated.Fields.Item("ID").Value))) Then
Response.Write(" selected=""selected"" ")
exit do
end if
End if
RsRelated.MoveNext()
loop
%>
><%=(RsRelatedProductOptions.Fields.Item("Product-Name").Value)%></option>
<%
RsRelatedProductOptions.MoveNext()
Wend
%>
</select>
</body>
</html>
<%
RsRelatedProductOptions.Close()
Set RsRelatedProductOptions = Nothing
%>
<%
RsRelated.Close()
Set RsRelated = Nothing
%>
The page in question is here
For the ID value 39 --
this ;
Select R.RelatedProductID as ID from dbo. [Direct-Related-Products] R where R.ProductID = 39
Produces the following results -
ID
16
17
18
19
this; SELECT ID, [Product-Name] FROM dbo.[Direct-Product] WHERE [Display-TGI-Direct] = 'Y' AND ID <> 39 ORDER BY [Product-Name]
Produces the following results -
ID Product-Name
40 final Test Hopefully ££$
16 Product1
17 Product2
18 Product3
19 Product4
So Products 1 - 4 should be highlighted, but are not...
Please advise.
Many thanks
<select name="category" size="8" multiple="multiple" id="category">
<option value="" <%If (Not isNull((RsSelectedCategori
<%
While (NOT RsCategoriesOptions.EOF)
While (NOT RsSelectedCategories.EOF)
%>
<option value="<%=(RsCategoriesOpt
<%
RsSelectedCategories.MoveN
wend
RsCategoriesOptions.MoveNe
Wend
If (RsCategoriesOptions.Curso
RsCategoriesOptions.MoveFi
Else
RsCategoriesOptions.Requer
End If
%>