SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Client Object Model - LookUp Wert zuweisen

Unbeantwortet Dieser Beitrag hat 0 Antworten

Ohne Rang
31 Beiträge
AHO erstellt 18 Nov. 2011 16:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi @ll,

 

wenn ich ein Listen Item erstelle und diesem einen Wert für ein Lookup-Feld (Lookup With Picker) hinzufüge, wird dies (als das Lookup-Feld Value) meistens nicht übernommen (meistens, da bei erstellen von über 40 Listen-Items per Skript - eins einen Wert im Lookup Feld hat).

Mein Script sieht in etwa so aus:

 

ListItemCreationInformation listItemInfo = new ListItemCreationInformation();
                ListItem tempListItem = list.AddItem(listItemInfo);
               
                foreach (XmlNode field in node.ChildNodes)
                {


                    if(string.IsNullOrEmpty(field.InnerText.Trim()))
                        continue;

                    if ("title".Equals(field.Name))
                    {
                        tempListItem["Title"] = field.InnerText.Trim();
                        tempListItem.Update();
                    }

                    if ("online_date".Equals(field.Name))
                    {
                       
                        tempListItem["online_date"] = DateTime.Parse(field.InnerText.Trim());
                        tempListItem.Update();
                    }

                    if ("offline_date".Equals(field.Name))
                    {
                        tempListItem["offline_date"] = DateTime.Parse(field.InnerText.Trim());
                        tempListItem.Update();
                    }

                    if ("field".Equals(field.Name))
                    {
                    
                        if ("text_plain".Equals(field.Attributes["type"].Value))
                        {
                            tempListItem[field.Attributes["name"].Value] = field.InnerText.Trim();
                            tempListItem.Update();
                        }

                        if ("text_html".Equals(field.Attributes["type"].Value))
                        {
                            tempListItem[field.Attributes["name"].Value] = field.InnerText.Trim();
                            tempListItem.Update();
                        }

                        if ("datetime".Equals(field.Attributes["type"].Value))
                        {
                            tempListItem[field.Attributes["name"].Value] = DateTime.Parse(field.InnerText.Trim());
                            tempListItem.Update();
                        }

                      
                        if ("upload".Equals(field.Attributes["type"].Value))
                        {


                            string fileName = field.InnerText.Trim().Split('/')[1];

                            ListItem item = GetPictureListId( fileName); //such nach dem Item in der Picture-Library
                            if (item == null)
                                throw new Exception("item == null");
                            FieldLookupValue value = new FieldLookupValue();
                            value.LookupId = item.Id;
                            tempListItem[field.Attributes["name"].Value] = value;

                            tempListItem.Update();
                           
                           
                           
                        }


                        if ("thumbnail".Equals(field.Attributes["type"].Value))
                        {

                            string fileName = field.InnerText.Trim().Split('/')[1];

                            ListItem item = GetPictureListId( fileName);
                            if (item == null)
                                throw new Exception("item == null");
                            FieldLookupValue value = new FieldLookupValue();
                            value.LookupId = item.Id;
                            tempListItem[field.Attributes["name"].Value] = value;

                            tempListItem.Update();
                           
                        }
                    }
                }

               
                remoteCtx.ExecuteQuery();

 

Das XML aus dem die Daten importiert wird sieht in etwa so aus:

<article>
    <title><![CDATA[Lupe - 64 Pixel]]></title>
    <online_date><![CDATA[2010-05-05 00:00:00]]></online_date>
    <offline_date></offline_date>
    <field name="short_description" type="text_plain"><![CDATA[Lupe - 64 Pixel]]></field>
    <field name="long_description" type="text_plain"></field>
    <field name="keyword" type="text_plain"><![CDATA[Lupe  64 Pixel]]></field>
    <field name="upload" type="upload" filename="magnifying_glass_64.png" filesize="6238" mimetype="image/png"><![CDATA[329/magnifying_glass_64.png]]></field>

    <field name="thumbnail" type="thumbnail" filename="magnifying_glass_64.png.8331.png" filesize="8862" mimetype="image/png"><![CDATA[329/magnifying_glass_64.png.8331.png]]></field>

</article>

 

Mache ich etwas falsch in meinem Code?

 

Viele Dank im vorraus,

Andreas