Compartir a través de


de la propiedad SPField.StaticName

Obtiene o establece un nombre para el campo estático.

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
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; }

Valor de propiedad

Tipo: System.String
Una cadena que contiene el nombre del campo estático.

Excepciones

Excepción Condición
NotSupportedException

El campo pertenece a una lista con un origen de datos externo y el valor que intenta establecer no es el mismo que el valor de la propiedad InternalName .

Comentarios

Si el campo está en una lista con un origen de datos externo, la propiedad StaticName siempre devuelve el valor de la propiedad InternalName . Se produce una excepción si se intenta establecer la propiedad StaticName en un valor que no es el mismo que el valor de la propiedad InternalName .

De lo contrario, los valores devueltos por las propiedades StaticName y InternalName pueden ser diferentes. Tenga en cuenta que puede establecer la propiedad StaticName , mientras que la propiedad InternalName es de sólo lectura.

El valor de la propiedad InternalName es único dentro de una colección de campos. El valor de la propiedad StaticName no es necesariamente único.

Ejemplos

En el siguiente ejemplo es una aplicación de consola que ilustra las diferencias entre el nombre para mostrar, nombre estático y nombre interno de un campo. Tenga en cuenta que el código establece sólo los dos primeros nombres. El nombre del campo interno se crea mediante 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

La aplicación imprime el siguiente resultado en la consola.

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

Press ENTER to continue...

Vea también

Referencia

clase SPField

Miembros SPField

Espacio de nombres Microsoft.SharePoint

TryGetFieldByStaticName(String)