Parent-Child List Detail Views in SharePoint 2003

Problem

By using Lookup columns or cross referenced date in lists, it is desirable to create a details form for a list item that shows the related list items or documents.  Customizing the display form(dispform.aspx) of a list using FrontPage 2003, can show a data view on this page filtered by form’s ID field.  However, web part connections are not exposed on the Form List Web Part.

For example, when I click an item in a list, I want to see a display form that list out some documents in document library which relative to the item.

Solution Overview

Yes, the List Form Web Part does not support connections (nor does the form converted to a Data View).  What you can do, is to remove the form web part that is currently on the dispform.aspx page and replace it with a Data View Web Part.  Once that is done, you can use connections, and by using connections, you can choose to Filter one view based on [filterParam] and then pass data via connections to the [filterParam] parameter.

Solution

  1. Delete the current view of Detail List Item (the List Form Web Part)
  2. Insert a data view web part in its place
  3. Go into code view and Find: <ParameterBinding Name="filterParam" Location="Postback;Connection"/> for this data view
  4. Replace this code with: <ParameterBinding Name="filterParam" Location="Postback;Connection;QueryString(ID)"/>
    (note: it is case sensitive)
  5. Click back to design view
  6. Place the Cursor inside this Data View
  7. Data..Filter
  8. ID == [Input Parameter]
  9. Right click this data view
  10. Web Part Connections: Connect this web part to the other two web parts one at a time, passing the “Title” value to filter the other views.
  11. Save the page

Now, what happens is this:  when you click a link to come to this page, the URL contains the ID parameter, the initial data view gets filtered based on this value.  Then the connection fires automatically to filter the other two views based on the title of this initial data view.

You need to put a List View on that page and hide it so that WSS thinks that page can be used as a disp form.  For better or for worse, this is necessary.

  1. From FrontPage 2003, Open the page you’ve been working on
  2. Place the cursor at the bottom of the page
  3. Data..Insert Web Part Zone
  4. Select this zone
  5. Insert..Form > List Form
  6. Choose the List you are using and put in a bullet for Disp Form..OK
  7. Save the page
  8. Right click the List folder from the Folder list > Properties > Supporting files
  9. For the Display Form, browse out to this page
  10. OK back to the page
  11. Right click this Form web part and choose Web Part Properties
  12. Expand the Layout section and uncheck the box that says “Visible on Page” (note: don’t accidentally uncheck the “Included on page” because you’ll have to repeat steps above)
  13. OK back to the page.

Now it should work.  What you’ve just done is associated the list properties back to this page, but you have hidden the display form so it won’t interfere with your page layout. 

Fix List Title Component

Once you have implemented this you may notice that occasionally when you load the page, the list’s title will switch between all the referenced lists on the page.  It is a side effect of a fix to make migration work.  The control is an ASP.Net control the shows the views based on the views on the page for the list (I’m not exactly sure how it figures out which one if there is multiple).  Actually, if you refresh the page in IE several times, eventually the control will change if there are multiple views on the page.

The side effect is the fact that there are no GUIDs on the controls so that migration doesn’t break them.  The work around is to add the List=”<GUID>” property to the control tag and use the GUID of the list that you desire.  

NOTE: if you ever migrate the site with data, it will be the title component will break on deployment because it will have a new GUID.  You will have to go change the GUID).

  1. Click on the Modify Columns and Settings link in the list
  2. In the URL of this page, copy and past the GUID with the brackets.
  3. Open the dispform, add a view selector control
  4. Select the view selector control-> Edit tag -> add List="{GUID}" where GUID is what you copied in step 2.
  5. Save

Insert a field that links to a document in a list view

A common parent-child relationship is to have a list item that has many associated documents with it.  Normally, the child list view will provide a hyperlink to the file details web form rather than directly to the file.  The following describes how to create a hyperlink in the list view directly to the document.

  1. Select the text you want to be the hyperlink in FrontPage
  2. Insert..Hyperlink
  3. Click on Parameters
  4. Click on the “Insert Field Value” button and choose XSL: URL PATH (That is the path to the file)

Special thanks to Deven Hariyani for contributing to this solution.

3 Comments

  • This is exactly what I needed. I've implemented in a multi-level parent-child model. I only have one intermittent problem... If the child list does not contain any rows that match the filter criteria in the web part connection *sometimes* sharepoint will throw an error.

  • Hi
    Any ideia how to do this with MOSS2007?

  • Hi, I am using sharepoint portal server 2003 and outlook 2003. I want to bring the tasks in my outlook to sharepoint teamsite. I did t hat by using owatasks.dwp webpart. But I want to display more than the two default fields Subject and Due Date in the list and also be able to assign those tasks to list members. When I click on suject, it opens a new window where I can read the details about the task . Can I use any script or something to achieve this or can I populate the values from this webpart to the standard tasks list in sharepoint. Can anyone please share their experience?

    Thanks!

Comments have been disabled for this content.