In my previous posts on "Working With SharePoint List" I have discussed how we can Read, Add and Update SharePoint List. If you have to add new Item to a list which has lookup column, you have to follow a different procedure.
If you look at the following figure, you can easily understand what I'm going to do. I'm going to add a new record to List_B, which has a lookup column from List_A's Title Field.
This is a sample code to get the above task done,
public void addToLookUp()
{
/* open the web */
SPSite site = new SPSite("http://merdev-moss:5050/testsara");
SPWeb web = site.OpenWeb();
string targetList = "List_B";
string sourceList = "List_A";
string sourceListField = "Title";
/* we are going to add new row to List_B,
* It (List_B) has a lookup column called "A_Column",
* It (A_Column) get data from Title field of List_A.
* (List_A has value called "test2" in Title field)
*/
SPListItemCollection listItems = web.Lists[targetList].Items;
SPListItem item = listItems.Add();
item["Title"] = "New Title";
int ID = get_ID(web, sourceList, sourceListField, "test2");
if (ID != 0)
item["A_Column"] = ID;
item.Update();
}
public static int get_ID(SPWeb web, string list, string field, string itemname)
{
int id = 0;
SPList sharedDocumentList = web.ServerRelativeUrl.Equals("/") ? web.GetList(web.ServerRelativeUrl + list) : web.GetList(web.ServerRelativeUrl + "/" + list);
SPListItemCollection listItems = sharedDocumentList.Items;
foreach (SPListItem item in listItems)
{
if (item[field].ToString() == itemname.ToString())
id = item.ID;
break;
}
return (id);
}


Please can you post this method:
ReplyDeleteget_ID(web, sourceList, sourceListField, "test2");
Thanks!!
There is!!
ReplyDelete-----------------------------
public static int get_ID(SPWeb web, string list, string field, string itemname)
{
int id = 0;
SPList sharedDocumentList = web.ServerRelativeUrl.Equals("/") ? web.GetList(web.ServerRelativeUrl + list) : web.GetList(web.ServerRelativeUrl + "/" + list);
SPListItemCollection listItems = sharedDocumentList.Items;
foreach (SPListItem item in listItems)
{
if (item[field].ToString() == itemname.ToString())
id = item.ID;
break;
}
return (id);
}
Very nice post.it helped me a lot.
ReplyDeleteI need to insert a new item on a list that have a lookup, (ex: i need to insert a new item on list_b)
ReplyDeletecan you help me with it?
my email is jonatan.kapps@inpartec.com.br
hi i need to insert a new file with the ".txt" extension to a document library. I managed to insert that file but what is not working is the part where i need to add value to the lookup column corresponding to that file item... Note: the file is not uploaded from another list, it's a windows application that i have with an interface that takes the file from my desktop
ReplyDelete