Frage

Ich verwende SharePoint Server 2007 Enterprise mit Windows Server 2008 Enterprise und benutze die Veröffentlichungsportalvorlage. Ich habe für SharePoint List/List -Spalte gehört, sie enthält einen internen Namen, der für die Programmierung verwendet werden kann (als Kennung für die Listen-/List -Spalte) und auch einen Anzeigennamen (der für den Endbenutzer für den Listennamen oder die Listenspaltenname angezeigt wird ).

Wie finde ich einen solchen internen Namen und Anzeigennamen für die Spalte List/List?

War es hilfreich?

Lösung

Die gesenkte Antwort (Anders und Jaap sind schlauer als ich) ist Folgendes:

Wenn Sie eine Spalte in einer Liste erstellen, werden sowohl der DisplayName als auch der StaticName auf denselben Wert eingestellt. Der StaticName enthält jedoch konvertierte Werte für einige Zeichen, insbesondere ein Raum '' wird konvertiert '_x0020_'. Wenn also der DisplayName "Produktbeschreibung" ist, wird der StaticName sein 'Product_x0020_Description'.

Es gibt noch einen kleinen Bugaboo: Der StaticName ist auf 32 Zeichen beschränkt einschließlich der Übersetzungen für Sonderzeichen. Aus diesem Grund erstellt SharePoint, wenn Sie mehr als eine Spalte mit den gleichen ersten 20 Zeichen haben, staticNames wie folgt erstellt:

  • 'Product Desciption 1' ---> Product_x0020_Description_x0020_
  • 'Product Desciption 2' ---> Product_x0020_Description_x0020_0
  • 'Product Desciption 3' ---> Product_x0020_Description_x0020_1

usw.

Es ist klar, dass diese Nennbenzahl auch verwirrend werden kann, sodass viele Leute ihre Spalten ohne Leerzeichen in den Namen (ProductDescription1) erstellen und dann den DisplayName ändern.

Der einfachste Trick, um zu sehen, was der StaticName ist (für mich), um die Einstellungen zu listen, und dann auf den Spaltennamen klicken, an dem Sie interessiert sind. Auf der Spaltenseite ändern die URL in so etwas wie:

/_layouts/fldedit.aspx?list=%7B37920121%2D19B2%2D4C77%2D92FF%2D8B3E07853114%7D&Feld = Produkt%5FX0020%5fDescription

Der StaticName ist der Wert für den Feldparameter im QueryString. Es gibt jedoch mehr Codierung zu tun: den Unterstrichen (Unterstriche ('_') werden in '%5f' umgewandelt. So Product%5Fx0020%5FDescription meint Product_x0020_Description wieder.

Wenn Sie den DisplayName ändern, bleibt der StaticName, na ja, statisch. Dies führt häufig zu DisplayNames und StaticNames, die nichts miteinander zu tun haben. Wenn Sie also Prototyping machen, ist es eine gute Praxis, Spalten zu löschen und neu zu beraten, wenn Sie ihren Zweck und damit ihren Namen ändern.

Ich denke, das hat sich für mich in einen Blog -Beitrag verwandelt! (Update 2009-12-14: Ich habe tatsächlich eine bearbeitete Version davon in meinem Blog veröffentlicht, und die Kommentare und Diskussionen waren interessant.)

M.

Andere Tipps

Sie können verwenden SharePoint Manager Untersuchung von Eigenschaften bestehender Felder, einschließlich des Internalnamens

Tatsächlich sind drei Zeichenfolgen beteiligt, wie aus der Objektmodelluntersuchung (oder der Verwendung von SharePointExplorer) leicht ersichtlich ist.

  1. DisplayName/Titel

  2. StaticName

  3. Interner Name

Der StaticName der Site -Spalte kann aktualisiert werden, indem sie in der Funktion ("staticName" -attribut) und zum Wiedereinsetzen geändert wird. Wenn der Feature -Empfänger dann das Speiten.SpField und das Anruf -Update erhält, aktualisiert der StaticName aller Listeninstanzen.

Der interneName der Site -Spalte kann aktualisiert werden, indem sie in der Funktion ("Name" Attribut) und Neueinsatz geändert wird.

Der interneName der Site -Spalte wird jedoch nicht in SPField.Update und AFAICT aufgelistet und kann überhaupt nicht geändert, aktualisiert oder behoben werden.

Vielleicht ist es möglich, mit den zugrunde liegenden Zeilen in der Datenbank zu widmen, aber das ist offensichtlich nicht unterstützt.

Abgesehen von der Verwendung von SharePoint Explorer (Wich ist wahrscheinlich die beste Option) und falls Sie nur den internen Spaltennamen benötigen, können Sie auch verwenden U2U CAML Query Builder. Außerdem finden Sie den internen Spaltennamen, wenn Sie die Liste auf der Konfigurationsseite durchsuchen und die verfügbaren Spalten auswählen. Sie können sehen, dass der interne Name als Argument in der Abfragezeichenfolge in der Taste "Feld" übergeben wird.

Wenn Sie Listenvorlagen -IDs meinen, finden Sie sie hier:http://msdn.microsoft.com/en-us/library/dd586520(Büro.11) .aspx

Es gibt auch die Fieldid und PropertyConstant Klassen:

FieldID definiert Konstanten, mit denen Sie SharePoint -Felder verweisen sollten. PropertyConstants ist das gleiche Geschäft, aber für UserProfile -Felder.

Es gibt auch viele Aufzählungen, die Sie anstelle von Hardcoding -Saiten oder IDs verwenden sollten. Sie müssen die API für eine vollständige Liste suchen, aber ein solcher Enum ist Die ListType Enum

HTH Anders Rask

Wenn Sie mich mögen, suchen Sie im Odata -Format einen internen Namen

Antwort ist da

Odata__x0031_394

so was.

Tun Sie dies genug, um eine Adressleiste in dieser URL einzugeben:

http: // server-sharepoint-name/_api/lists('%7B5EF6FE58-BD05-4C1E-9A3D-2CD9E219EBDD%7D')/Elemente

und stattdessen %7B5EF6FE58-BD05-4C1E-9A3D-2CD9E219EBDD %7D sollte Ihre Listen-ID ersetzen

Im Körper Ihres Explorers erscheinen Spaltennamen:

<?xml version="1.0" encoding="utf-8"?>
<feed xml:base="http://srv-shp-name/_api/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
    <id>fa843c10-bec8-4cd0-a52b-f1f2144bee9b</id>
    <title />
    <updated>2016-09-16T14:04:54Z</updated>
    <entry m:etag="&quot;2&quot;">
        <id>Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)</id>
        <category term="SP.Data.SatheBarNameRiziSode4AmaliatEjraeiListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <link rel="edit" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FirstUniqueAncestorSecurableObject" type="application/atom+xml;type=entry" title="FirstUniqueAncestorSecurableObject" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/FirstUniqueAncestorSecurableObject" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/RoleAssignments" type="application/atom+xml;type=feed" title="RoleAssignments" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/RoleAssignments" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/AttachmentFiles" type="application/atom+xml;type=feed" title="AttachmentFiles" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/AttachmentFiles" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ContentType" type="application/atom+xml;type=entry" title="ContentType" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/ContentType" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesAsHtml" type="application/atom+xml;type=entry" title="FieldValuesAsHtml" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/FieldValuesAsHtml" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesAsText" type="application/atom+xml;type=entry" title="FieldValuesAsText" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/FieldValuesAsText" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesForEdit" type="application/atom+xml;type=entry" title="FieldValuesForEdit" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/FieldValuesForEdit" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/File" type="application/atom+xml;type=entry" title="File" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/File" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Folder" type="application/atom+xml;type=entry" title="Folder" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/Folder" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ParentList" type="application/atom+xml;type=entry" title="ParentList" href="Web/Lists(guid'5ef6fe58-bd05-4c1e-9a3d-2cd9e219ebdd')/Items(1)/ParentList" />
        <title />
        <updated>2016-09-16T14:04:54Z</updated>
        <author>
            <name />
        </author>
        <content type="application/xml">
            <m:properties>
                <d:FileSystemObjectType m:type="Edm.Int32">0</d:FileSystemObjectType>
                <d:Id m:type="Edm.Int32">1</d:Id>
                <d:ContentTypeId>0x0100470E097D26C9784F9F4375502DB04E4B</d:ContentTypeId>
                <d:Title>استان آذربایجان غربی</d:Title>
                <d:OData__x0031_393 m:type="Edm.Double">690</d:OData__x0031_393>
                <d:OData__x0031_394 m:type="Edm.Double">1874</d:OData__x0031_394>
                <d:OData__x0031_395 m:type="Edm.Double">20505</d:OData__x0031_395>
                <d:OData__x0031_396 m:type="Edm.Double">27011</d:OData__x0031_396>
                <d:OData__x0031_397 m:type="Edm.Double">7390</d:OData__x0031_397>
                <d:Total93toNow>57470.0000000000</d:Total93toNow>
                <d:ostanId m:type="Edm.Int32">9</d:ostanId>
                <d:ID m:type="Edm.Int32">1</d:ID>
                <d:Modified m:type="Edm.DateTime">2016-08-28T15:06:56Z</d:Modified>
                <d:Created m:type="Edm.DateTime">2016-08-19T08:27:36Z</d:Created>
                <d:AuthorId m:type="Edm.Int32">33</d:AuthorId>
                <d:EditorId m:type="Edm.Int32">33</d:EditorId>

XML -Tags wie diese

7390

Odata__x0031_397

Bessere Idee ist die Löschung der Spalte und neu zu erstellen. Ist die beste Lösung

Wenn Sie den Zugriff auf den Terminalserver auf den SharePoint -Server haben, besteht der einfachste Weg für mich, SharePoint Management Shell zu verwenden und Folgendes auszuführen:

$w = get-spweb http://server/path_to_site
$l = $w.Lists['your_list_TITLE_here']
$l.Fields | sort Title | ft Title, InternalName

In der Spalte 'Titel' listet die Spalte des Felds Anzeige und die Spalte "InternalName" auf den internen Namen auf.

Als Alternative zu serverseitigem PowerShell können Sie SharePoint Rest API verwenden:

http://server/path_to_site/_api/web/lists/GetByTitle('your_list_TITLE_here')/Fields?$select=Title,InternalName&$orderby=Title

Das gibt dieselbe Informationen zurück, die als ODATA -Antwort formatiert ist. Sie können den Browser verwenden, aber ein Rast -Client ist besser wie Advanced Rest Client für Chome.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top