Compartilhar via


SPField.StaticName property

Obtém ou define um nome estático para o campo.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
Public Property StaticName As String
    Get
    Set
'Uso
Dim instance As SPField
Dim value As String

value = instance.StaticName

instance.StaticName = value
public string StaticName { get; set; }

Property value

Type: System.String
Uma cadeia de caracteres que contém o nome estático do campo.

Exceptions

Exception Condition
NotSupportedException

O campo pertence a uma lista que possua uma fonte de dados externo e o valor que você está tentando definir não é o mesmo que o valor da propriedade InternalName .

Comentários

Se o campo estiver em uma lista que possua uma fonte de dados externo, a propriedade StaticName sempre retorna o valor da propriedade InternalName . Uma exceção é lançada se você tentar definir a propriedade StaticName como um valor que não é o mesmo que o valor da propriedade InternalName .

Caso contrário, os valores retornados pelas propriedades StaticName e InternalName podem ser diferentes. Observe que você pode definir a propriedade StaticName enquanto a propriedade InternalName é somente leitura.

O valor da propriedade InternalName é exclusivo dentro de uma coleção de campo. O valor da propriedade StaticName não é necessariamente exclusivo.

Examples

O exemplo a seguir é um aplicativo de console que ilustra as diferenças entre o nome para exibição, nome estático e nome interno de um campo. Observe que o código define somente os primeiros dois nomes. O nome do campo interno é criado pelo SharePoint Foundation.

using System;
using Microsoft.SharePoint;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.RootWeb)
                {
                    string strDisplayName = "My Custom Field";
                    string strStaticName = "MyStaticName";

                    SPField field = web.Fields.TryGetFieldByStaticName(strStaticName);

                    if (field == null)
                    {
                        string strInternalName = web.Fields.Add(strDisplayName, SPFieldType.Text, false);
                        field = web.Fields.GetFieldByInternalName(strInternalName);

                        field.StaticName = strStaticName;
                        field.Update();
                    }

                    Console.WriteLine("Title: {0}", field.Title);
                    Console.WriteLine("Internal name: {0}", field.InternalName);
                    Console.WriteLine("Static name: {0}", field.StaticName);
                }
            }
            Console.Write("\nPress ENTER to continue...");
            Console.ReadLine();
        }
    }
}
Imports System
Imports Microsoft.SharePoint

Namespace ConsoleApp
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            Using site As New SPSite("https://localhost")
                Using web As SPWeb = site.RootWeb
                    Dim strDisplayName As String = "My Custom Field"
                    Dim strStaticName As String = "MyStaticName"

                    Dim field As SPField = web.Fields.TryGetFieldByStaticName(strStaticName)

                    If field Is Nothing Then
                        Dim strInternalName As String = web.Fields.Add(strDisplayName, SPFieldType.Text, False)
                        field = web.Fields.GetFieldByInternalName(strInternalName)

                        field.StaticName = strStaticName
                        field.Update()
                    End If

                    Console.WriteLine("Title: {0}", field.Title)
                    Console.WriteLine("Internal name: {0}", field.InternalName)
                    Console.WriteLine("Static name: {0}", field.StaticName)
                End Using
            End Using
            Console.Write(vbLf & "Press ENTER to continue...")
            Console.ReadLine()
        End Sub
    End Class
End Namespace

O aplicativo imprime a seguinte saída no console.

Title: My Custom Field
Internal name: My_x0020_Custom_x0020_Field
Static name: MyStaticName

Press ENTER to continue...

Ver também

Referência

SPField class

SPField members

Microsoft.SharePoint namespace

TryGetFieldByStaticName(String)