Caml Query per ottenere il valore del campo di ricerca
-
10-12-2019 - |
Domanda
Ho scritto un'app autohosted per mostrare alcuni dati in un elenco.
Per ottenere i dati nell'elenco, uso questo pezzo di codice con una query Caml.
using (var clientContext = TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken, Request.Url.Authority))
{
var web = clientContext.Web;
var list = web.Lists.GetByTitle("Calendrier");
string camlString =
"<View><ViewFields>" +
"<FieldRef Name='Title' />" +
"<FieldRef Name='EventDate' />" +
"<FieldRef Name='Category' />" +
"<FieldRef Name='Location' />" +
"<FieldRef Name='Eleve' />" +
"</ViewFields></View>";
var camlQuery = new Microsoft.SharePoint.Client.CamlQuery() { ViewXml = camlString };
// allItems contains the data
var allItems = list.GetItems(camlQuery);
clientContext.Load(allItems);
clientContext.ExecuteQuery();
clientContext.Dispose();
return View(allItems.ToList());
}
.
Ed Ecco il codice nella vista per stampare i dati recuperati:
@foreach (var item in Model)
{
<tr>
<td>@item["EventDate"]</td>
<td>@item["Location"]</td>
<td>@item["Eleve"]</td>
<td>@item["Category"]</td>
</tr>
}
.
Ma quando provo a stampare il campo di ungueo a mio avviso, tutto è andato bene tranne che per stampare la colonna "unguee" che è una ricerca.
Come posso ottenere il valore della ricerca di ungue.title invece di stampare 'Microsoft.SharePoint.Client.fieldLookupValue' nella colonna in cui provo a stampare @Item ["Elee"]?
E se qualcuno ha un buon collegamento per imparare Caml per SharePoint 2013 grazie per condividerlo :)
Soluzione
Provalo in vista sulla riga di unguee:
<td>@(new SPFieldLookupValue(item["Eleve"].ToString()).LookupValue</td>
.
Questo dovrebbe lanciare l'oggetto a una ricerca, dalla strega estrai il valore.
O se non è possibile accedere a SpfieldLookupValue Class, è possibile effettuare .Tostring () sulla colonna dell'oggetto e quindi analizzare il valore dalla stringa risultante.