SharePoint 2007 (MOSS/WSS) Issue with lookup column to Doc Lib Name Field
Requirement:
You have created a document library and you have created another list where you wanted to have a lookup type column and wanted to use that lookup column to receive the Name of the documents from the doc lib. But you cannot get the Name field in the drop down for lookup column.
Apparently this is a limitation and there is no direct resolution out of the box.
Anyway, I found a workaround for this and it involves coding. I have created a sample code for a custom Item Event receiver feature. I have created a new field in the doc lib called FileName. Now after activating this feature, once we add any document to the doc lib the value of the Name field will be copied to FileName field. Now this FileName field is available in the lookup dropdown which solves our purpose. Here is the code for the custom feature:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace NameLUpHandler
{
public class Processor : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
if (properties.ListItem.Fields.ContainsField("FileName"))
properties.ListItem["FileName"] = properties.ListItem["Name"];
properties.ListItem.Update();
}
}
}
Comments
Anonymous
January 08, 2008
PingBack from http://msdnrss.thecoderblogs.com/2008/01/08/sharepoint-2007-mosswss-issue-with-lookup-column-to-doc-lib-name-field-3/Anonymous
January 08, 2008
Requirement: You have created a document library and you have created another list where you wanted toAnonymous
December 05, 2008
Can you post the feature xml files for this custom evnet handler? Thanks very much.Anonymous
December 16, 2008
Hi Paul I have a little variant issue , I need to look up to a list from my document library, say i have a column in the list called document types.How can i add a this look up column to my document library.Anonymous
February 03, 2009
Couldn't you create a workflow in Sharepoint Designer that sets FileName equal to Name and have it fire for new items? I did that and I believe I got the same result.Anonymous
February 04, 2009
I know one tool,very small actually, called sharepoint Document auto tittle which claims can auto set tittle to document and can be looked-up easily! But from your blog I fond it is not so easy to do this. Am I got it wrong or what happened? If you want check it visit http://www.sharepointboost.com/ Thanks a lot!Anonymous
June 05, 2009
Where do you put the file once it is created?Anonymous
January 24, 2010
The comment has been removedAnonymous
July 27, 2012
Instead of using properties.ListItem.Update(); use properties.ListItem.SystemUpdate(false); This method will not affect the modified (by) field and version number.