SPQuery.ViewFields property
Obtém ou define os exibir campos retornados pela consulta.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public Property ViewFields As String
Get
Set
'Uso
Dim instance As SPQuery
Dim value As String
value = instance.ViewFields
instance.ViewFields = value
public string ViewFields { get; set; }
Property value
Type: System.String
Uma seqüência de caracteres que contém um fragmento Collaborative Application Markup Language que especifica os campos do modo de exibição.
Comentários
A propriedade ViewFields contém uma seqüência de caracteres que corresponde ao XML interno do elemento ViewFields em Collaborative Application Markup Language (CAML).
O atributo Type é especialmente útil para campos Lookup e User . Caso contrário, sem esse atributo, a consulta não pode retornar os resultados esperados. Em alguns casos, a consulta poderá falhar completamente.
Dica
Para obter informações sobre como usar consultas Language-Integrated Query (LINQ) para recuperar itens de lista em SharePoint Foundation, consulte Managing Data with LINQ to SharePoint.
Examples
O exemplo a seguir é um aplicativo de console que usa uma consulta para obter uma coleção de itens da lista de tarefas e especifica os valores de campo para retornar com cada item. Depois buscar os dados, o aplicativo imprime um relatório para o console.
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using site As SPSite = New SPSite("https://localhost")
Using web As SPWeb = site.OpenWeb()
' Build a query.
Dim query As SPQuery = New SPQuery()
query.Query = String.Concat( _
"<Where><Eq>", _
"<FieldRef Name='Status'/>", _
"<Value Type='CHOICE'>Not Started</Value>", _
"</Eq></Where>", _
"<OrderBy>", _
"<FieldRef Name='DueDate' Ascending='TRUE' />", _
"<FieldRef Name='Priority' Ascending='TRUE' />", _
"</OrderBy>")
query.ViewFields = String.Concat( _
"<FieldRef Name='AssignedTo' />", _
"<FieldRef Name='LinkTitle' />", _
"<FieldRef Name='DueDate' />", _
"<FieldRef Name='Priority' />")
query.ViewFieldsOnly = True ' Fetch only the data that we need.
' Get data from a list.
Dim listUrl As String = web.ServerRelativeUrl + "/lists/tasks"
Dim list As SPList = web.GetList(listUrl)
Dim items As SPListItemCollection = list.GetItems(query)
' Print a report header.
Console.WriteLine("{0,-25} {1,-20} {2,-25} {3}", _
"Assigned To", "Task", "Due Date", "Priority")
' Print the details.
Dim item As SPListItem
For Each item In items
Console.WriteLine("{0,-25} {1,-20} {2,-25} {3}", _
item("AssignedTo"), item("LinkTitle"), item("DueDate"), item("Priority"))
Next
End Using
End Using
Console.ReadLine()
End Sub
End Module
using System;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://localhost"))
{
using (SPWeb web = site.OpenWeb())
{
// Build a query.
SPQuery query = new SPQuery();
query.Query = string.Concat(
"<Where><Eq>",
"<FieldRef Name='Status'/>",
"<Value Type='CHOICE'>Not Started</Value>",
"</Eq></Where>",
"<OrderBy>",
"<FieldRef Name='DueDate' Ascending='TRUE' />",
"<FieldRef Name=’Priority’ Ascending='TRUE' />",
"</OrderBy>");
query.ViewFields = string.Concat(
"<FieldRef Name='AssignedTo' />",
"<FieldRef Name='LinkTitle' />",
"<FieldRef Name='DueDate' />",
"<FieldRef Name='Priority' />");
query.ViewFieldsOnly = true; // Fetch only the data that we need.
// Get data from a list.
string listUrl = web.ServerRelativeUrl + "/lists/tasks";
SPList list = web.GetList(listUrl);
SPListItemCollection items = list.GetItems(query);
// Print a report header.
Console.WriteLine("{0,-25} {1,-20} {2,-25} {3}",
"Assigned To", "Task", "Due Date", "Priority");
// Print the details.
foreach (SPListItem item in items)
{
Console.WriteLine("{0,-25} {1,-20} {2,-25} {3}",
item["AssignedTo"], item["LinkTitle"], item["DueDate"], item["Priority"]);
}
}
}
Console.ReadLine();
}
}
}