Frage

Ich verwende eine Microsoft -Vorlage zum Hinzufügen von Schulungen und Kursen, für die sich Menschen registrieren können. Alles funktioniert gut, aber ich möchte der Kurseliste ein Feld hinzufügen. Ich möchte ein Feld hinzufügen, um anzugeben, für welche Art von Personal dieser Kurs ist, z. B. HR, Gesundheit und Sicherheit, Administrator usw.

Also habe ich nach Antworten darauf gesucht, die Dokumentation zu SharePoint ist schockierend und ich habe Folgendes gemacht:

  • Einstellungen> Spalte auf der Seite Kurse erstellen.
  • Geben Sie alle notwendigen Details ein
  • Bei Dispform, Editform und NewForm (.aspx) hinzugefügt @fStaffType, Staff Type; zu DataFields Sektion. (Staff Type ist der Name des Feldes ")
  • Bei Dispform wurde eine neue Zeile hinzugefügt, um die Daten anzuzeigen:

    <tr>
        <td width="190px" valign="top" class="ms-formlabel">
           <H3 class="ms-standardheader">
               <nobr>Staff Type</nobr>
           </H3>
        </td>
       <td width="400px" valign="top" class="ms-formbody">
           <xsl:value-of select="@fStaffType"/>
        </td>
    </tr>
    
  • Auf Editform und NewForm wurden eine neue Zeile zum Bearbeiten/Eingeben von Daten hinzugefügt:

    <tr>
        <td width="190px" valign="top" class="ms-formlabel">
       <H3 class="ms-standardheader">
           <nobr>Staff Type</nobr>
       </H3>
        </td>
        <td width="400px" valign="top" class="ms-formbody">
            <SharePoint:FormField runat="server" id="ff12{$Pos}" ControlMode="New" FieldName="fStaffType" __designer:bind="{ddwrt:DataBind('i',concat('ff12',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@fStaffType')}"/>
            <SharePoint:FieldDescription runat="server" id="ff12description{$Pos}" FieldName="fStaffType" ControlMode="New"/>
        </td>
    </tr>
    

Bei Editform und Newform erhalte ich den Fehler:

Fehlerrendernsteuerung - FF12Description_1

Eine nicht behandelte Ausnahme ist aufgetreten. Der Objektverweis wurde nicht auf eine Instanz eines Objekts festgelegt.

Wenn ich die Beschreibung kommentiere, zeigt sie die erste td (Feldname) Aber der zweite td ist einfach leer.

Jede Hilfe wäre sehr geschätzt!

Bearbeiten: Ein verwandtes Problem, wissen Sie nicht, ob ich eine neue Frage erstellen sollte oder nicht. Aber Marc D Anderson antwortete unten und ich konnte ein neues Feld hinzufügen und anzeigen. Ich kann jedoch perfekt einen neuen Kurs hinzufügen, aber wenn ich einen bearbeite und das Feld des Personals Typ ändern wird, wird zum aktuellen Tag und Zeit ein neuer Kurs erstellt. Aber wenn andere Felder bearbeitet werden, bearbeiten sie korrekt.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Viele der "Fabelhafte 40" Vorlagen haben maßgeschneiderte Formulare. (Sie werden wahrscheinlich zu diesem Zeitpunkt über den fabelhaften Teil des Namens diskutieren.)

Es sieht so aus, als ob Sie ungefähr die richtigen Dinge in den Formen tun, aber es ist ein bisschen schwer zu sagen, wohin es auf Sie nach Süden geht.

Haben Sie sie als "FSTAFFTYPE" einen Namen "fStaffType" gegeben? Wenn nicht, ist das das Problem. Wenn Sie es "Mitarbeiter Typ" benannt haben, lautet der interne Name (oder StaticName) für die Spalte "staf_x0020_type". (Der Speicherplatz im Namen wird codiert.) Bearbeiten: Sie finden den StaticName für eine Spalte, indem Sie in Listeneinstellungen und bearbeiten diese Spalte. Der StaticName befindet sich am Ende der URL als Abfragestnparameter. Je nachdem, welche Charaktere Sie verwendet haben, kann es kodieren, wie Staff%5FX0020%5FTYPE.

Sie müssen den Spalten -DisplayName und den StaticName nicht zum Abschnitt "Diatafield" hinzufügen - es erfüllt ehrlich gesagt keinen offensichtlichen Zweck. Sie müssen nur sicherstellen, dass der Spaltenname im SharePoint: Formfield und SharePoint: FieldDescription mit dem StaticName für den von Ihnen hinzugefügten Spaltennamen übereinstimmt.

Das nachfolgende "_1" im Fehler ist Teil des eindeutigen Namens, den SharePoint jeder Instanz dieser Spalte auf der Seite angibt (Sie könnten Änderungen an mehreren Elementen in derselben Form zulassen), indem Sie den Wert der $ POS -Variablen anfließen.

Andere Tipps

Sieht so aus, als ob FF12 bereits woanders auf der Seite definiert ist und am Ende wahrscheinlich mit _1 neu geschrieben wird.

  1. Können Sie einfach versuchen, das Feld aus der Datenquelle zu ziehen und den Designer herauszufinden, die Feldnamen herausfinden?

ODER

  1. Können Sie versuchen, das Formular "benutzerdefinierte Bearbeitungsformular" auf einer anderen Seite hinzuzufügen und dann die FieldDescription zu kopieren?

Ich habe Ihre Bedürfnisse möglicherweise nicht gelesen oder ein gutes Verständnis für Ihre Bedürfnisse bekommen. Warum nicht den Inhaltstyp implementieren? Sie können eine Funktion für Ihre benutzerdefinierten Felder (auch bekannt als Spalten) haben und das Attribut wie Diplay in Edit Form = True, anzeigen = true (usw.) festlegen.

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