我有两个简单的清单。一个叫做员工,有一列名为Title。另一个叫做公司,有一列名为Title。我在员工列表中添加了一个查找列,并将其指向公司列表的ID。
现在我使用CSOM编写了这段代码(没有javascript,没有服务器对象模型)
ClientContext c = new ClientContext(url);
List el = c.Web.Lists.GetByTitle("Employee");
CamlQuery query = new CamlQuery();
query.ViewXml = @"<View>
<ViewFields>
<FieldRef Name='ID'/>
<FieldRef Name='Title'/>
<FieldRef Name='CompanyTitle'/>
</ViewFields>
<Joins>
<Join Type='LEFT' ListAlias='Company'>
<Eq>
<FieldRef Name='Company' RefType='Id'/>
<FieldRef List='Company' Name='ID'/>
</Eq>
</Join>
</Joins>
<ProjectedFields>
<Field Name='CompanyTitle' Type='Lookup' List='Company' ShowField='Title'/>
</ProjectedFields>
<Query>
<Where>
<Eq>
<FieldRef Name='Company' LookupId='TRUE' />
<Value Type='Lookup'>10</Value>
</Eq>
</Where>
</Query>
</View>";
ListItemCollection items = el.GetItems(query);
c.Load(items);
c.ExecuteQuery();
foreach (ListItem i in items) {
Console.WriteLine(i["Title"]);
Console.WriteLine(i["CompanyTitle"]);
}
它有效...但它打印
E01 Microsoft.SharePoint.Client.FieldLookupValue E11 Microsoft.SharePoint.Client.FieldLookupValue E21
但不是看到&#34; Microsoft.SharePoint.Client.FieldLookupValue&#34;我想从父列表中查看列的实际内容。
我的代码出了什么问题?
答案 0 :(得分:0)
搞定了
Console.WriteLine(((FieldLookupValue)i["CompanyTitle"]).LookupValue);
将它放在这里以便它可以帮助某人