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...