2009-08-24 12 views
1

Ich habe Probleme mit einer benutzerdefinierten Steuerelementvorlage.Benutzerdefinierte SharePoint-Steuervorlage wird nicht angewendet

Meine Absicht ist es, eine benutzerdefinierte Steuerelementvorlage für eine NewForm.aspx für eine Liste zu verwenden.

  1. Ich habe eine CustomTemplate.ascx Datei erstellt und diese zu 12/Template/CONTROLTEMPLATES

    eingesetzt wird <SharePoint:RenderingTemplate ID="CustomListForm" runat="server" >...

  2. ich geändert haben die schema.xml-Datei für die Liste meiner benutzerdefinierten Vorlage zu verwenden:

    <Form Type="NewForm" Url="NewForm.aspx" WebPartZoneID="Main" Template="CustomListForm" />

Meine NewForm.aspx Seite zeigt jedoch immer noch die Standardansicht. Dies gilt sowohl für neue als auch für bestehende Listen, die auf meiner Listenvorlage basieren. Ich habe versucht, IIS um die Bereitstellung neu zu starten, aber das hilft nicht.

Wenn ich den Namen meiner Vorlage in "ListForm" ändere, überschreibt dies erfolgreich die Standardvorlage wie erwartet, und ich kann die Änderung in bestehenden und neuen Listen sehen.

Ich habe auf dieser Website und Google nach Hilfe gesucht, kann aber nichts finden. Ist jemand schon einmal darauf gestoßen?

Antwort

2

Stellen Sie sicher, dass der Vorlagenname in Ihrem Inhaltstyp null oder leer ist. Der in ContentType definierte TemplateName überschreibt jeden im Listenschema definierten TemplateName.

FYI, der neue Inhaltstyp 'Element' hat NewFormTemplateName auf 'ListForm' gesetzt, dies überschreibt jeden benutzerdefinierten Vorlagennamen, der in Ihrem Listenschema definiert ist.

0

Ich würde vermuten, dass Sie irgendwo in der CustomTemplate.ascx einen Fehler haben -
könnten Sie den Code der CustomTempate.ascx veröffentlichen?

0

Alle Schritte, die Sie durchgeführt haben, sind richtig. Ich habe ähnliche Dinge in der Vergangenheit gemacht und war erfolgreich darin, es zum Laufen zu bringen. Wenige Dinge, die ich vorschlagen würde, ist versuchen, folgenden Code schreiben zu sehen, was ist die Vorlage, die Sie bekommen.

 SPList oList=SPContext.Current.Web.Lists["YourList"]; 
     Console.WriteLine(oList.Forms[PAGETYPE.PAGE_NEWFORM].TemplateName); 

Wenn der obige Code ist den richtigen Namen der Vorlage Rückkehr dann gibt es kein Problem mit dem Einsatz/association.Something falsch mit der Vorlage selbst. Sie können sich in das SharePoint-Protokoll einarbeiten. Sie sollten mehr Informationen erhalten.

+0

Ok, überprüfte das Protokoll nach dem Versuch, das NewForm zu sehen.aspx Seite und Folgendes geschrieben: Hoch \t WARNUNG: Kann FormContext.FormMode nicht zu [Ungültig] ändern, da es bereits auf [Neu] gesetzt ist Irgendwelche Ideen? – Jonny

0

Hmmm interessanter Punkt. Würden Sie erwarten, dass ein Syntaxfehler dazu führt, dass SharePoint auf den Standardwert zurückgreift, anstatt einen Fehler auszulösen? Hier

ist der Code aus den CustomTemplate.ascx Dateien:

<%@ Control Language="C#" AutoEventWireup="false" %> 
<%@Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@Register TagPrefix="SharePoint" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" namespace="Microsoft.SharePoint.WebControls"%> 
<%@Register TagPrefix="SPHttpUtility" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" namespace="Microsoft.SharePoint.Utilities"%> 
<%@ Register TagPrefix="wssuc" TagName="ToolBar" src="~/_controltemplates/ToolBar.ascx" %> 
<%@ Register TagPrefix="wssuc" TagName="ToolBarButton" src="~/_controltemplates/ToolBarButton.ascx" %> 
<SharePoint:RenderingTemplate ID="CustomListForm" runat="server"> 
    <Template> 
      Test content 
    </Template> 
</SharePoint:RenderingTemplate> 

Bitte beachte, dass ich die Richtlinien aus der DefaultTemplates.ascx Datei kopiert. Meine Datei befindet sich im selben Verzeichnis.

Vielen Dank für Ihre Hilfe!

Verwandte Themen