Установите пользовательский файл ASPX как часть определения ListTemplate - PullRequest
0 голосов
/ 27 июня 2009

Я использую VSeWSS от 1,3 до , создайте пользовательское определение списка , ограниченное "Сайт".

    <Elements Id="8924acef-84ef-4584-ade4-e3eaeb8df345" xmlns="http://schemas.microsoft.com/sharepoint/">

  <ListTemplate Name="MyListDefinition"
                DisplayName="MyList"
                Description=""
                BaseType="0"
                Type="10888"
                OnQuickLaunch="TRUE"
                SecurityBits="11"
                Sequence="410"
                Image="/_layouts/images/itgen.gif" />

  <CustomAction
    Id="MyList.Print"
    Location="Microsoft.SharePoint.StandardMenu"
    GroupId="ActionsMenu"
    Title="Print MyItem"
    Description="Print Empty copies of this form."
    RegistrationType="List"
    ControlAssembly="MyList, Version=1.0.0.0, Culture=neutral, PublicKeyToken=de6e0316a726abcd, processorArchitecture=MSIL"
    ControlClass="MyList.PrintActionMenu" />

  <Module Name="ActionPages" Url="">
    <File Url="PrintForm.aspx" Type="Ghostable" Path="MyListDefinition\PrintForm.aspx" />
  </Module>
</Elements>

Файл 'PrintForm.aspx' правильно установлен на сервере в ... \ 12 \ TEMPLATE \ Features ... , но не отображается в ожидаемый URL http://localhost/site/lists/listname/PrintForm.aspx после установки шаблона списка и создания нового экземпляра списка с использованием этого шаблона.

Я подозреваю, что в моем файле ListDefinition.xml (показанном выше) отсутствуют правильные свойства в тегах and и / или.

Ответы [ 2 ]

0 голосов
/ 30 июня 2009

Если это где-нибудь, я бы ожидал, что PrintForm.aspx будет отображаться в корневой папке вашего сайта, когда URL-адрес вашего элемента Module будет пустым. Попробуйте это:

  <Module Name="ActionPages" Url="lists/listname">    
        <File Url="PrintForm.aspx" Type="GhostableInLibrary" Path="MyListDefinition\PrintForm.aspx" />  
  </Module>

Кроме того, попробуйте GhostableInLibrary вместо Ghostable в качестве типа файла.

Наконец, вы упоминаете, что PrintForm.aspx действительно появляется где-то в компонентах, но не дает полного пути. Убедитесь, что он находится в ... \ 12 \ TEMPLATE \ Features \ YourFeaturesName \ MyListDefinition \ PrintForm.aspx. В зависимости от значения атрибута Path файл PrintForm.aspx должен находиться в каталоге с именем MyListDefinition в вашей функции.

0 голосов
/ 27 июня 2009

У вас также должен быть schema.xml, а в schema.xml должно быть что-то вроде этого:

<Forms>
  <Form Type="DisplayForm" Url="DispForm.aspx" WebPartZoneID="Main" />
  <Form Type="EditForm" Url="EditForm.aspx" WebPartZoneID="Main" />
  <Form Type="NewForm" Url="NewForm.aspx" WebPartZoneID="Main" />
  ...... your form here
</Forms>

P.S. попробуйте генератор решений SharePoint, чтобы экспортировать существующий список (поставляется с VSeWSS), он даст вам полное определение xml. Вы можете использовать это как ссылку.

P.P.S. в ссылке, размещенной в комментарии, указано, что файлы должны быть зарегистрированы в функции следующим образом:

<ElementFile Location="GenericList\schema.xml" />
<ElementFile Location="GenericList\DispForm.aspx" />
<ElementFile Location="GenericList\EditForm.aspx" /> 
<ElementFile Location="GenericList\NewForm.aspx" /> 
<ElementFile Location="GenericList\AllItems.aspx" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...