This project has moved and is read-only. For the latest updates, please go here.

Cascading Downloads

Feb 24, 2010 at 5:12 PM

I've read other comments and fear that things are not being said explicitly enough for my understanding, so I'm going to start right at the beginning and see if anyone can help.

  1. In SharePoint Designer, I have selected "Drop-Down Box" from the toolbox.
  2. I went to my Data Source Library and selected the Sharepoint List and said, "Insert Data Source Control".
  3. I then linked the Drop-Down Box to that data source, selecting "Title" to be both the text and value of the dropdown list.
  4. I repeated this 5 times, once for each of 5 lists I have.
  5. I have 5 lists. They're called org_level1, org_level2, org_level3, org_level4, org_level5
  6. org_level1 contains just a Title.
  7. org_level2 contains a title and a lookup field called level1_lookup, as this is a lookup on the first List
  8. org_level3 contains a title and a lookup field called level2_lookup, etc, etc.
  9. I'm using the latest version of spservices and jquery, and have included the js files correctly
  10. I have the following code:
$(document).ready(function() {
		relationshipList: "org_level2",
		relationshipListParentColumn: "level1_lookup",
		relationshipListChildColumn: "Title",
		parentColumn: "level1_lookup",
		childColumn: "Title",

 I get the error: Parameter: parentColumn: level1_lookup, Column not found on page

My goal is to have 5 drop-down lists, each one to be populated based on the organisational level you selected in the last.

I also don't really understand how this script gets linked to the dropdownlists I placed on my page, given that I don't supply the script with any IDs.

I'm baffled, please help.


Feb 24, 2010 at 5:33 PM

Well, for starters, the SPServices SPCascadeDropdowns function is designed to be used on a SharePoint list form. You're building a form from scratch as opposed to using either the default list form or the custom list form methods, thus your DOM isn't going to match that of a SharePoint list form and SPServices isn't going to be able to communicate with your select elements.

Try making a copy of your newform.aspx and working on that to understand how SPServices works, before trying to build your own form.


Feb 24, 2010 at 5:43 PM

Do any tutorials exist from start to finish?$().SPServices.SPCascadeDropdowns&referringTitle=Documentation This page doesn't even mention the words "SharePoint list form".  I'm very new to all of this, and feel that a good tutorial on this would really give me a great head-start.

Thanks for your feedback so far, it's been enlightening! Really! I'm going to have a fun day of research tomorrow.

Best regards,

Feb 24, 2010 at 6:00 PM

There are many articles out there that cover various implementations of SPCascadeDropdowns, along with many of the other SPServices functions.

A good place to start is always Marc's personal blog: SPCascadingDropdowns Demystified (or Mystified, Depending on Your View), or even a Google search. The library has been adopted in everything from little development environments to major corporations so there's a lot of information out there.

I always believe the best way to learn is to tactfully try it out and learn how things really work. We recognize that in many cases the people using the library aren't seasoned developers, and often the concepts of how to implement such functionality is completely foreign. I believe you'll find that if you work on a SharePoint form such as newform.aspx (always make a backup as you're sure to screw it up beyond repair at least once), and reference the documentation here on Codeplex, in the forums here, and the information on Marc's blog, you'll have more than enough information to get it working. If you have issues, by all means post back here and we'll help you out.

Feb 25, 2010 at 9:04 AM

Thank you. You're a gentleman and a scholar!

Feb 25, 2010 at 12:47 PM
Edited Feb 25, 2010 at 12:56 PM

Here is a summary of my research to date.

I've only been able to find one tutorial, including all previously mentioned, that actually walks you through from "Open Sharepoint Designer, click on this, do that!".  That tutorial is on and is very useful indeed.  He spells out concepts which are glossed over or missed out entirely by tutorials on Codeplex or Marc's blog, such as the following.  As well as setting up your lists with lookups to other lists, thus creating a hierarchy, you must create a final list with lookup fields for every title in the lists you just made.  Now copying that NewForm.aspx makes more sense.

I now have the code in my NewForm.aspx (a copy, not the original), and for some reason it has enabled the dropdown on the level 4 dropdownlist.  Can you explain why or what I've done wrong? I obviously want it to work on all dropdownlists.

Here is my code:

<script language="javascript" type="text/javascript">
	$(document).ready(function() {
		relationshipList: "org_level2",			/* This is the Sharepoint list*/
		relationshipListParentColumn: "level1_lookup", 	/* This is the lookup column on the org_level2 list*/
		relationshipListChildColumn: "Title",		/* I always want to display Title data*/
		parentColumn: "level1_lookup",			/* The lookup column in org_level2 list which looks up the parent in the hirarchy */
		childColumn: "level3",				/* The name of the column in the Sharepoint list I made which (a)links all lookups and (b)from which the NewItem.aspx file was copied */ 
		debug: true

I  am also receiving the following error:


Error in function: SPServices.SPCascadeDropdowns
parentColumn: level1_lookup
Column not found on page

Any advice from anyone is greatly appreciated.



Feb 25, 2010 at 1:09 PM

I'd appreciate any further input you might have about my documentation for things. As you might expect, the people using the library run from total novices to real developers, and I've tried to find a middle ground. Unfortunately, there are also those who won't read the docs at all or if they are too long. Add to that the constraints that the Wiki format imposes, and obviously there are a lot of dimensions to all of this.

I'd seen that write up you found before, and I need to at least add a link to it into the docs. You're thinking things through well, so as I said, any other input that you think would help others is greatly appreciated!


On Feb 25, 2010, at 4:56, "stevenmc" <> wrote:

From: stevenmc

Thank you. You're a gentleman and a scholar!

Feb 25, 2010 at 1:59 PM

No problem M.  As soon as I have the system working for myself I will be happy to suggest areas where I found the documentation confusing.  I've read it over and over about 10 times or more now, and the blog posts too.

I think the software appears to be really great, and once you get your head around it, it looks like it's really easy to implement.  The problem for me is just that first step.

I'm going to keep trying here, but any advice as to where you think I may be going wrong would be appreciated.  I do feel that, in combination with your first post above and the link I've posted, I have come a long way in just a few hours.

With a little help I might be able to get this working, and will be happy to document my steps.  I feel sorry for you, as you seem to be the only one answering posts - you have your work cut out for you. I hope you're being paid for this!!!

Steven :)

Feb 25, 2010 at 2:04 PM
I wrote the library, so I'm the guy who answers stuff. However, while
I'm on vacation, Mike's (@webdes03) been at your service.

I don't get paid for this. I started it because I thought it would be
fun, and it's become a job in itself!

Feb 25, 2010 at 3:55 PM

It sure has.  The Sharepoint environment we work in here is really locked down by the business, so the only real programming interface to it is JS.  
For this reason, if we didn't have your code, we wouldn't be using Sharepoint - I think Microsoft needs to buy this software from you and reward you 

I have managed to get the example shown in the link above working.  From that, I have created a flow-chart of how I feel the SPCascadeDropdowns
works.  I would appreciate if you could have a look over it and let me know if you think what I have made is correct.  I think it is.

Sorry for the low-res image and poor graphics, websites and software are both locked down here, it's the best I can get you.

Is the chart pretty much correct?


Feb 25, 2010 at 5:11 PM

Well, I'm glad this is so useful for you.  I have consulted to companies with similar environments, and that was one of the reasons I thought this library would be useful.  By locking everything down, IT makes sure that there is nothing unexpected, but at the same time, they ensure that they will meet few of the business's requirements. I've lived on both sides of that divide, and I understand their logic, but it's a little too 1980s to me.

Your flow chart looks right to me.  It's a pretty simple concept if you are at all familiar with database concepts, but that knowledge usually resides with those pesky IT types.

Send that idea along to Microsoft for me, will you?  ;+)


Jun 3, 2010 at 6:30 AM

      I have just been battling the same sample stevemc was refering to in this post.
But i keep getting the error
Column not found on page.

I have looked at the and sure i have done the right thing by following the example here : 

The only thing i corrected after looking at is the 3rd lookup which is the Cities list Country Lookup column to the the Title Column on the Countries List

So if i understood from his interpretations there are 3 Lookups to do.
The other thing is on the list i want to use i just added a CONTENT EDITOR WEBPART and pasted the script in there.
Could this be why its not working.Do i need to use the NewForm.aspx?
Thanks in advice and you've done a good job Marc and i also like the debug.trure you added.


Jun 3, 2010 at 11:38 PM

A couple of things to try...

First off, start with just one dropdown relationship and get it working. Don't try to get more than one going until you are sure the bits and pieces right.

Secondly, add an alert inside the $(document).ready. If it fires, then your jQuery library reference is right. (This is *the* most common problem people have: getting the .js file references right.)

Let me know how it goes...


Jun 4, 2010 at 1:43 AM

Symparc thanks for the prompt reply.I did add an alert already and its firing.
I'm just starting with one dropdown relationship.The example i followed is from here :

The only thing ithat i did differently is that  i used the jquery.SPServices-0.5.4.min.js instead of the jquery.SPServices-0.4.8.min.js 
the same goes for jquery-1.3.2.min.js i'm using the jquery-1.4.2.min.js
Could that be the reason???

Also had a look at a different solution here:
But i'm not using any multiselect:( and my language is ENGLISH.

and on last question where whoild i be putting the CONTENT EDITOR WEPART with the scripts. Is it in the Allitems.aspx?I noticed i get the error when i load that page.
I can't add  a CONTENT EDITOR WEPART on the newform.aspx page from the site actions unless i add it using Sharepoint Designer...
Any ideas... guess maybe i'm missing something..

Jun 4, 2010 at 2:03 AM

The code needs to into the page where you want to functionality to be.  So if it's NewForm where you want SPCascadeDropdowns to do its thing, then that's where you need to put the code.

You can add new Web Parts to the forms pages by adding ?toolpaneview=2 to the end of the URL. So, if your NewForm is at:


you'd add ?toolpaneview=2, getting


I always recommend adding the scripts directly into a *COPY* of the default form page rather than using a CEWP, but either approach works.

It's interesting reading Audun's documentation for my software (the links you give above). I didn't know that was out there.


Jun 4, 2010 at 3:00 AM

I actually just decided to add  the scripts to NewForm and EditForm.aspx pages using SPD before i read this post.
And it worked like a charm.
How many levels can we go with this 3 and more.....:)
Well it seems you are becoming popular as OBAMA in the sharepoint world:)

Jun 4, 2010 at 3:25 AM

Wow. That's a scary thought. ;+)

You can have as many levels as you want. (I haven't tried more than 4, but there's nothing in the code that should preclude you from having more.)  The more you have, the slower the page is likely to be, as each change at a higher level will trigger changes "down the line".  But if it solves a business problem, nest 'em as much as you want 'em.

Glad you got it working!