CAML查询从父列表中提取列

时间:2014-03-12 22:59:05

标签: sharepoint caml

我有两个简单的清单。一个叫做员工,有一列名为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;我想从父列表中查看列的实际内容。

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

搞定了

Console.WriteLine(((FieldLookupValue)i["CompanyTitle"]).LookupValue);

将它放在这里以便它可以帮助某人