SPField.StaticName 属性

获取或设置字段的静态名称。

命名空间:  Microsoft.SharePoint
程序集:  Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)

语法

声明
Public Property StaticName As String
    Get
    Set
用法
Dim instance As SPField
Dim value As String

value = instance.StaticName

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

属性值

类型:System.String
一个字符串,包含静态字段的名称。

异常

异常 条件
NotSupportedException

字段所属具有外部数据源的列表,而您试图设置的值不能InternalName属性的值相同。

备注

如果该字段是具有外部数据源的列表中, StaticName属性将始终返回InternalName属性的值。如果您尝试StaticName属性设置为一个值,它不是InternalName属性的值相同,将引发异常。

否则,返回的StaticName和InternalName属性的值可以是不同。请注意您可以设置StaticName属性,而InternalName属性是只读的。

InternalName属性的值内是唯一的字段集合。StaticName属性的值不一定是唯一。

示例

下面的示例是一个控制台应用程序说明字段的显示名称、 静态名称和内部名称之间的差异。请注意代码设置仅的前两个名称。由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

应用程序将以下输出显示到控制台上。

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

Press ENTER to continue...

另请参阅

引用

SPField 类

SPField 成员

Microsoft.SharePoint 命名空间

TryGetFieldByStaticName(String)