Ottenere elementi correlati da un elemento della lista genitore attraverso lookup
-
22-10-2019 - |
Domanda
devo 2 liste: le imprese ei lavoratori. Nelle aziende ho un campo di testo Nome e dipendenti ho una ricerca per aziende basati sul nome della società.
Quello che sto cercando di realizzare è quello di ottenere tutti i dipendenti relativi a nome di una società specifica.
gettting i campi relativi tra le 2 liste:
SPList list = SPContext.Current.Web.Lists[ID];
SPRelatedFieldCollection relatedFields = list.GetRelatedFields();
Come tutti i valori degli elementi secondari:
SPList childList = SPContext.Current.Web.Lists[relatedFields[0].ListId];
SPFieldLookup lookupField = childList.Fields[relatedFields[0].FieldId] as SPFieldLookup;
foreach (SPListItem item in childList.Items)
{
object rawValue = item[relatedFields[0].FieldId];
if (rawValue !=null)
{
if (lookupField.AllowMultipleValues)
{
SPFieldLookupValueCollection values = item[relatedFields[0].FieldId] as SPFieldLookupValueCollection;
}
else
{
SPFieldLookupValue value = new SPFieldLookupValue(rawValue.ToString());
}
}
}
Così come posso filtrare l'elenco bambino per ottenere solo i dipendenti specifici da una singola azienda (come società = "Microsoft")? Tenete a mente che 2 aziende potrebbero avere lo stesso nome, quindi non posso basato la mia soluzione al valore.
Grazie,
Soluzione
Credo che stavo lavorando troppo duro e bisogno di una pausa dal codice per vedere l'ovvio ...
ho scoperto di avere il SPListItem.ID
sulla voce genitore vi darà il rapporto con SPFieldLookupValue.LookupId
sulla voce del bambino.