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