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.




Wert in Lookup Field schreiben

Unbeantwortet Dieser Beitrag hat 1 Antworten

Ohne Rang
32 Beiträge
Exes Forum erstellt 14 Juni 2011 12:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe schon einige Zeit recherchiert, komme aber einfach nicht weiter und habe mitlerweile auch ziemliche Zeitprobleme :/

Ich schreibe einen EventReceiver ItemAdding, der einen eingegebenen Wert in einer Liste A nimmt, und diesen an einen bereits bestehenden Wert eines LookupFelds in einer anderen Liste anhängen soll.

Ich finde jedoch nur Hinweise, wie man Lookupfelder befüllt, indem man neue Items per Item.Add hinzufügt, was ja nicht das ist, was ich benötige.

Mein Code sieht bisher so aus (mit einigen Versuchen, die auskommentiert sind):

 

public override void ItemAdding(SPItemEventProperties properties)

        {
            using (SPSite Site = new SPSite("http://moss2007-bib:5555"))
            {
                SPWeb web = Site.OpenWeb();
               
                String id= "";
                SPList list = web.Lists["Seminarinstanzen"];
                SPList list2 = web.Lists["Seminaranmeldung"];


                String loginName = properties.UserLoginName;
                String teilnehmer = loginName.Substring(10);


                SPFieldLookupValue group = new SPFieldLookupValue(properties.AfterProperties["Seminarwahl"].ToString());

                int lookedUpItemID = group.LookupId;

                string seminar = group.LookupValue;

                String item;
                String item2;

                foreach (SPListItem listItem in listItemCollection)
                {
                    item = listItem["TeilnehmerTest"].ToString();
                    item += teilnehmer + ";";
                    listItem["TeilnehmerTest"] = item;
                    listItem.Update();

                }

                //C_Teilnehmer auswählen einfügen (Liste Seminaranmeldung)
                SPQuery spQuery2 = new SPQuery();
                spQuery2.Query = @"<Where>
                                         <Eq>
                                          <FieldRef Name='ID' />
                                          <Value Type='DualLookup'>´" + lookedUpItemID + @"</Value>
                                         </Eq>
                                   </Where>";

                SPListItemCollection listItemCollection2 = list2.GetItems(spQuery2);
               


                //foreach (SPListItem listItem in listItemCollection2)
                {
                    SPListItem listItem = list2.Items.Add();
                    listItem["Teilnehmer%5Fx0020%5Fausw%5Fx00e4%5Fhlen"] = new SPFieldLookupValue(listItem.ID, teilnehmer);
                    listItem.Update();




                   // SPFieldLookupValue group2 = new SPFieldLookupValue(listItem["Teilnehmer%5Fx0020%5Fausw%5Fx00e4%5Fhlen"].ToString());
                   // int tID = group.LookupId;
                   // string tseminar = group.LookupValue;

                    //listItem["Teilnehmer ausw%5Fx00e4%5Fhlen"]
                 //   item2 = listItem["Teilnehmer_x0020_ausw_x00e4_hlen"].ToString();
                 //   item2+= teilnehmer + ";";
                 //   listItem["Teilnehmer_x0020_ausw_x00e4_hlen"] = item2;
                 //   listItem.Update();
                   
                }
                                        
                              
            }
        }
    }

}

 

Ein weiteres Problem, an dem ich derzeit hänge ist, dass die foreach Schleife einen Fehler wirft, da die Konvertierung hier nicht funktioniert.

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Juni 2011 12:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tut mir leid, aber ich habe nicht verstanden, wo genau das Problem liegt. Wie man Lookups per Code belegt, weißt Du anscheinend (nämlich mit einem SPFieldLookupValue). Wenn es ein Lookup mit Mehrfachauswahl ist, dann ist es eine SPFieldLookupValueCollection.

Viele Grüße
Andi
af @ evocom de
Blog