Пользовательский шаблон управления SharePoint не применяется - PullRequest
1 голос
/ 24 августа 2009

У меня проблемы с пользовательским шаблоном управления.

Мое намерение - использовать пользовательский шаблон элемента управления для NewForm.aspx для списка.

  1. Я создал файл CustomTemplate.ascx, и он развернут в 12/Template/CONTROLTEMPLATES

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

  2. Я изменил файл schema.xml для списка, чтобы использовать мой пользовательский шаблон:

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

Моя страница NewForm.aspx по-прежнему показывает представление по умолчанию. Это для новых и существующих списков на основе моего шаблона списка. Я попытался перезапустить IIS для развертывания, но это не помогает.

Если я изменю имя моего шаблона на «ListForm», это успешно перезапишет шаблон по умолчанию, как и ожидалось, и я смогу увидеть изменения в существующих и новых списках.

Я искал помощи на этом сайте и в Google, но ничего не могу найти. Кто-нибудь сталкивался с этим раньше?

Ответы [ 4 ]

2 голосов
/ 25 августа 2009

Убедитесь, что TemplateName в вашем типе контента является пустой или пустой строкой. TemplateName, определенное в ContentType, переопределит любое TemplateName, определенное в схеме списка.

К вашему сведению, для типа содержимого «Элемент» из коробки для NewFormTemplateName установлено значение «ListForm», это переопределит любое имя пользовательского шаблона, определенное в вашей схеме списка.

0 голосов
/ 24 августа 2009

Все Шаги, которые Вы выполнили, верны. Я делал подобные вещи в прошлом и добился успеха. Несколько вещей, которые я бы посоветовал - попробуйте написать следующий код, чтобы увидеть, какой шаблон вы получаете.

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

Если приведенный выше код возвращает правильное имя шаблона, то нет проблем с развертыванием / ассоциацией. Что-то не так с самим шаблоном. Вы можете покопаться в журнале SharePoint. Вы должны получить больше информации.

0 голосов
/ 24 августа 2009

ммм интересный момент. Ожидаете ли вы, что синтаксическая ошибка приведет к тому, что SharePoint вернется к значению по умолчанию, а не к ошибке?

Вот код из файлов CustomTemplate.ascx:

<%@ 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>

Обратите внимание, что я скопировал директивы из файла DefaultTemplates.ascx. Мой файл находится в том же каталоге.

Большое спасибо за вашу помощь!

0 голосов
/ 24 августа 2009

Я думаю, у вас есть ошибка где-то в CustomTemplate.ascx -
Не могли бы вы опубликовать код CustomTempate.ascx?

...