Click here to Skip to main content
Licence CPOL
First Posted 21 Dec 2002
Views 160,382
Downloads 781
Bookmarked 63 times

Dynamically populating ComboBoxes using ASP/VBScript and Detecting the parent folder of the current script

By | 21 Dec 2002 | Article
An article on how to dynamically add strings to any number of drop downs using VBScript and ASP. Also explains how to get the parent folder of an ASP file.

Introduction

This article tries to throw light on how we can add options to a ComboBox using client-side scripting. This can be useful in many situations where we do not want a form to be submitted each time we want to add something to a ComboBox. The article also explains how we can get the parent folder of the current ASP file. This is useful in situations where you need to get the full physical path of a file in your application directory, as for generating the connection strings for a DB access.

Using the code

Adding elements to a ComboBox using client side script

Here we create an instance of "OPTION", assign value to it and add it to the ComboBox. The CreateElement method of document object creates an instance of an element for the "OPTION" tag.

Dim a
a = 1

Sub Button1_OnClick
    If Text1.value <> "" Then
        Set objOpt = document.CreateElement("OPTION")
        objOpt.Value = a				
        objOpt.Text = Text1.value
        Select1.add objOpt
        Set objOpt = Nothing
        Select1.selectedIndex = a
        a = a + 1		
    End If
End Sub 

The variable a is used to track the number of items in the ComboBox. After adding the new element, we set the newly added item as the current selection.

Adding elements to a ComboBox in a different frame using client side script

The method of adding an item is same here except that we refer to the ComboBox in a different frame. The frame index is taken from 0 - n, where we have n frames in the parent window.

Set objOpt = document.CreateElement("OPTION")
objOpt.Value = a				
objOpt.Text = Text1.value
window.parent.frames(0).Select1.add objOpt
Set objOpt = Nothing
window.parent.frames(0).Select1.selectedIndex=a
a = a+1		

Generating client-side script using ASP

<%
    Dim i
    For i= 1 to 5
%>

Dim a<%=i%>
a<%=i%> = 1

Sub Button<%=i%>_onclick
    if Text<%=i%>.value <> "" Then
        Set objOpt = document.CreateElement("OPTION")
        objOpt.Value = a<%=i%>				
        objOpt.Text = Text<%=i%>.value
        window.parent.frames(0).Select<%=i%>.add objOpt
        Set objOpt = Nothing
        window.parent.frames(0).Select<%=i%>.selectedIndex=a<%=i%>
        a<%=i%> = a<%=i%> + 1
    End If
End Sub 

<%
    Next
%>		
		

Here we have five text-boxes, buttons and corresponding ComboBoxes. The script for each button is generated dynamically. The ASP is embedded in the script code, so you do not have to handle the new lines individually.

<INPUT id="Text<%=i%>" type="text" name="Text<%=i%>"> 
<INPUT id="Button<%=i%>" type="button" value="Add<%=i%>" name="Button<%=i%>">

Finding the parent folder of current script

Here we will see two methods to get the parent folder of the current script. One instance where I found this useful was when I wanted to generate the connection string to connect to an Access database in a subfolder of the application directory.

Both methods use the ServerVariables collection of the Request method to get the virtual path of the running script. This value is then mapped to a physical path by using the MapPath method of Server object to get the physical path of the script. The first method locates the position of last '\' and gets the parent folder by removing the file name of the script.

'Convert the virtual path of the current file to physical path		
phypath = Server.MapPath(Request.ServerVariables("SCRIPT_NAME"))

'locate position of \ from the end
slashpos = instrrev(phypath,"\")	

'separate the folder name
getpath = left(phypath,slashpos-1)		

The second method uses the FileSystemObject object to get the parent folder.

'Convert the virtual path of the current file to physical path		
phypath = Server.MapPath(Request.ServerVariables("SCRIPT_NAME"))

'Create a FileSystemObject instance
Set fsobj = Server.CreateObject("Scripting.FileSystemObject")

'Create a File object representing the file, specified by phypath
Set fileobj = fsobj.GetFile(phypath)

'get the parent folder of fileobj
Set getdir = fileobj.ParentFolder
		

Here we first create a File object which represents the current file. The ParentFolder method of the File object then helps us to acquire the parent folder of the file. To get the above method working, you will require the Scripting Runtime Library [scrrun.dll] to be properly installed.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Smitha Vijayan


The Code Project
United States United States

Member

Smitha is a software developer, and has been in the industry since January 2000. She has experience in ASP.NET, C#, Windows Forms, Visual Basic, ASP, JavaScript, VBScript, and HTML. She has been with The Code Project since 2003 and currently works as Senior Technical Editor.
 
In her free time, she tries out new dishes, reads a little, and puts together jigsaw puzzles. Originally from Trivandrum, Smitha currently lives with her husband and fellow CP'ian Nish [^] and her son Rohan in Columbus, Ohio.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralMy vote of 5 PinmemberJohn Blenkinsop23:20 12 Feb '12  
GeneralExcellent work PinmemberBrij21:12 7 Jan '09  
Generalwant 2 use ASP code in vbscript Pinsussrumsraja19:45 26 May '04  
GeneralASP Pinmembersuman_sunil4:23 5 Feb '04  
Generalthanks and offtopic q Pinmemberevilmousse7:35 24 Dec '03  
Generalremoving options in combobox Pinmemberradhixz4:07 1 May '03  
Generalhaha PinmemberJoe Billy19:01 17 Feb '03  
Generalgood work!!! Pinmemberpkravikkumar0:13 22 Jan '03  
GeneralRe: good work!!! PinmemberSmitha Vijayan1:48 22 Jan '03  
GeneralRe: good work!!! Pinmemberpkravikkumar0:12 23 Jan '03  
GeneralWonderful article, beautiful girl! PinmemberJoe Billy15:18 2 Jan '03  
Generalrealy useful PinmemberJaygiri9:34 27 Dec '02  
GeneralRe: realy useful PineditorNishant S9:55 27 Dec '02  
GeneralRe: realy useful PinmemberJaygiri4:28 30 Dec '02  
GeneralIE dependency PineditorNishant S4:10 23 Dec '02  
GeneralRe: IE dependency PinmemberSmitha Vijayan4:18 23 Dec '02  
GeneralRe: IE dependency PineditorNishant S6:26 23 Dec '02  
GeneralCongrats ! PinmemberKannan Kalyanaraman2:41 23 Dec '02  
GeneralRe: Congrats ! PineditorNishant S3:26 23 Dec '02  
GeneralRe: Congrats ! PinmemberSmitha Vijayan3:30 23 Dec '02  
GeneralRe: Congrats ! PinmemberZeeshan Mehmood6:57 15 Feb '03  
GeneralOld style ASP PineditorNishant S16:35 22 Dec '02  
GeneralRe: Old style ASP PineditorJames T. Johnson16:38 22 Dec '02  
GeneralRe: Old style ASP PineditorNishant S16:42 22 Dec '02  
GeneralRe: Old style ASP PinmemberPaul Ingles1:11 23 Dec '02  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120517.1 | Last Updated 22 Dec 2002
Article Copyright 2002 by Smitha Vijayan
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid