Проблема ListViewWebPart с пользовательским шаблоном списка событий - PullRequest
1 голос
/ 15 июня 2010

Я скопировал C: \ Program Files \ Common Files \ Microsoft Shared \ Расширения веб-сервера \ 14 \ TEMPLATE \ FEATURES \ EventsList \ Events \ schema.xml в функцию шаблона настраиваемого списка.У меня есть еще одна функция, которая создает экземпляр списка:

<ListInstance
    FeatureId="58c1f9c9-eadb-41dd-a358-e04b2f2e30c0"
    TemplateType="100322"
    Title="$Resources:core,calendarList"
    Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder"
    OnQuickLaunch="TRUE">
</ListInstance>

и затем помещает ListViewWebPart на страницу:

<View List="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder" BaseViewID="0" WebPartZoneID="TopRightRow" WebPartOrder="3" />

Я активирую функции и перехожу на сайт.Веб-часть говорит: в настоящее время нет предстоящих событий.Чтобы добавить новое событие, нажмите «Добавить новое событие».Я нажимаю Добавить новое событие, введите информацию и нажимаю Сохранить.Страница обновляется, сообщение об отсутствии предстоящих событий исчезает, но элементы не отображаются!Если я иду в календарь, элемент списка там.Что дает?

Я изменяю определение экземпляра списка так, чтобы он использовал готовый шаблон:

<ListInstance
    FeatureId="00bfea71-ec85-4903-972d-ebe475780106"
    TemplateType="106
    Title="$Resources:core,calendarList"
    Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder"
    OnQuickLaunch="TRUE">
</ListInstance>

Когда я перестраиваю сайт, активирую функции и повторяю «добавить».новые "шаги, элемент теперь правильно отображается в веб-части после обновления страницы.

Я отменил все свои изменения в шаблоне пользовательского списка.Теперь он идентичен схеме OOTB.Почему мой шаблон списка не работает, а шаблон списка OOTB работает?

1 Ответ

1 голос
/ 16 июня 2010

Я знаю, почему работает шаблон OOTB, но я смог исправить свой пользовательский шаблон.

Сначала удалите строку XslLink из представления BaseViewID = "0" в schema.xml:

<XslLink>main.xsl</XslLink>

Прокрутите вниз до раздела «Панель инструментов / IfHasRights». Изменить вариант 4 с:

<Case Value="4"><HTML><![CDATA[<div class="tb"><img src="/_layouts/images/caladd.gif" alt="" />&#160;<a class="ms-addnew" id="idHomePageNewEvent" href="]]></HTML>
  <URL Cmd="New" /><HTML><![CDATA[" onclick="javascript:NewItem(']]></HTML>
  <ScriptQuote NotAddingQuote="TRUE">
    <URL Cmd="New" />
  </ScriptQuote><HTML><![CDATA[', true);javascript:return false;" target="_self">]]></HTML><HTML>$Resources:core,AddNewEvent;</HTML><HTML><![CDATA[</a></div>]]></HTML>
</Case>

до:

<Case Value="4"><HTML><![CDATA[<div class="tb"><img src="/_layouts/images/caladd.gif" alt="" />&#160;<a class="ms-addnew" id="idHomePageNewEvent" href="]]></HTML>
  <URL Cmd="New" /><HTML><![CDATA[" onclick="javascript:NewItem2(event, ']]></HTML>
  <ScriptQuote NotAddingQuote="TRUE">
    <URL Cmd="New" />
  </ScriptQuote><HTML><![CDATA[');javascript:return false;" target="_self">]]></HTML><HTML>$Resources:core,AddNewEvent;</HTML><HTML><![CDATA[</a></div>]]></HTML>
</Case>

Это позволяет новому всплывающему поведению SharePoint 2010 NewForm.aspx.

Затем измените подготовку веб-части на:

<View List="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder" BaseViewID="0" WebPartZoneID="TopRightRow" WebPartOrder="3">
    <![CDATA[
        <WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
            <Assembly>Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
            <TypeName>Microsoft.SharePoint.WebPartPages.ListViewWebPart</TypeName>
            <Title>Calendar</Title>                       
        </WebPart>
    ]]>
</View>

Это вместе с удалением строки XslLink заставляет веб-часть отображаться как ListViewWebPart вместо XsltListViewWebPart .

Теперь рендеринг между двумя узлами отличается, поэтому в качестве последнего шага используйте следующий стиль, чтобы ссылка добавления новой записи ListViewWebPart выглядела как ссылка добавления новой XsltListViewWebPart:

div.tb {
border-top:1px solid #EBEBEB;
margin:3px 0 16px;
padding:9px 7px 3px 10px;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...