Standard WSS/MOSS Data Entry Screens Do Not Support Cascading Drop-downs (or other intra-from communication)

 

UPDATE (04/2008): This great blog entry shows a good javascript based approach to this problem: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

UPDATE II: (04/2008): This blog entry looks promising as well: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Several times a week, if not daily, forum users describe a requirement that would normally be met via cascading drop-downs.  For example, I have two drop-down controls:

  • List of U.S. states
  • List of U.S. cities.

As responsible UI providers, we want it to operate like this:

  • Paul selects a U.S. state from the drop-down. 
  • This causes the cities drop-down to filter only those cities that belong to the selected state. 
  • Paul selects a city from this filtered list.

There is no out-of-the-box support for this feature.  In fact, there is no OOB support for any kind of direct intra-form communication.  This includes programmatically hiding/enabling/disabling fields in response to field changes elsewhere on the form.

The real objective of this article to to describe possible solutions and these are the options as I know them:

  1. Develop a custom column type.  As a custom-column-developer, you have full control over the "world" of that custom column.  You can implement a cascading drop-down that way. 
  2. Consider using workflow.  In some cases, you want to automatically assign a value to field based on another field’s value.  In this case, you would normally try to use a calculated column, but some times, it just won’t get the job done.  SharePoint Designer workflow is a relatively administer-friendly alternative to dropping down into code and visual studio.  If you go this route, be aware of the issue addressed by this article (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Event handlers: Like workflow, this is an after-the-fact solution.  Your event handler is a .NET assembly (C#, VB.NET) to which SharePoint passes control.  The object you develop has access to the data of the list (and the whole object model) and can do any needed calculation.
  4. Use SharePoint Designer to create custom entry forms.  I don’t have direct experience with this approach, but I hear they are doing good things with NewForm.aspx these days 🙂
  5. Roll your own ASP.NET data entry function (as a stand-alone web page or as a web part) and use that instead.

If anyone knows other and/or better options, please post a comment and I’ll update the body of this post.

<end/>

Technorati Tags:

4 thoughts on “Standard WSS/MOSS Data Entry Screens Do Not Support Cascading Drop-downs (or other intra-from communication)

  1. Paul Galvin
    Monjo,
     
    Thanks for the comment, this is the kind of feedback for which I was hoping.
     
    It appears that as I write this, the cost is $349 USD?  If so, is that price for unlimited use?
     
    Thanks!
     
    –Paul
     
    Reply
  2. Mike Mongeau

    Paul,

    Check this out: http://www.spsdev.com/filter.aspx .

    From their site: "SpsDev.Com’s Filter Field is a custom field type that does filtering. 
    You can add one to many filter fields to your list or library, and each one can
    be filtered based on another filtered field in the list.  Pick a state in
    one field, and the list of cities in the next field is filtered to only show
    items from that state, for example.  In this release we support SQL Server
    2000 and 2005, and Xml as sources for the field data.  As you change a
    selection in any of the drop downs, all of the drop downs below it are each
    filtered to show only the appropriate choices based on the selection that’s
    been made."

    Monjo

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *