Что ж, я хотел бы получить доступ к странице представления определения списка, которая, я думаю, будет недоступна с помощью вышеуказанного метода site.GetFile (). Любые другие варианты, которые вы думаете, мы можем использовать для достижения этой цели. Я пробовал следующие шаги:
Скопируйте OOB «ViewPage.aspx» и поместите его в ту же папку, что и «CustomViewPage.aspx»
Создайте пользовательскую веб-часть, которая показывает элементы представления с вашим индивидуальным подходом.
Создайте функцию для предоставления «CustomViewpage.aspx» вместе с пользовательской веб-частью.
Создание пользовательского определения списка. В файле schema.xml определения для всех представлений укажите «SetupPath» для ссылки на ваш «CustomViewPage.aspx». На этом шаге все представления, упомянутые в определении списка, будут использовать «CustomViewPage.aspx» для создания страниц представлений, а также все представления, которые вы создаете после создания списка, будут использовать «customViewPage.aspx» в качестве основы. страница для создания просмотра страниц.
Шаг 1:
Просто скопируйте OOB «ViewPage.aspx» и поместите его в папку C: \ Program Files \ Common Files \ Microsoft Shared \ extensions веб-сервера \ 12 \ TEMPLATE \ Pages как «CustomViewPage.aspx»
Шаг 2:
Создайте пользовательскую веб-часть, которая показывает элементы представления с вашим индивидуальным подходом. В основном используйте метод GetViewfromUrl («Lists //»), чтобы получить представление, а затем получить элементы в веб-части. Фрагмент кода для пользовательской веб-части выглядит следующим образом:
SPList list = SPContext.Current.List;
String strViewName =
SPView view = SPContext.Current.Web.GetViewFromUrl ("Lists / list /" + strViewName);
SPListItemCollection listItems = list.GetItems (view);
.
.
.
.
Получив элементы списка, сделайте свой собственный подход к отображению элементов.
Создайте библиотеку DLL веб-части и поместите ее в GAC.
Шаг 3:
Создайте функцию для предоставления «CustomViewPage.aspx» вместе с вашей пользовательской веб-частью. При активации этой функции «Customviewpage.aspx» будет встроен в вашу пользовательскую веб-часть. Содержимое файла манифеста элементов выглядит следующим образом:
<File Url="Pages/CustomViewPage.aspx" Type="Ghostable">
<AllUsersWebPart WebPartZoneID="Main" WebPartOrder="1">
<![CDATA[
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
<Assembly>CustomWebpartforView, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e3483ddc8b0d437a</Assembly>
<TypeName> CustomWebpartforView.MyCustomview</TypeName>
<FrameType>None</FrameType>
<IsVisible>true</IsVisible>
<Title>Custom Web part for View</Title>
</WebPart>
]]>
</AllUsersWebPart>
</File>
Этот шаг выдает ошибку для пути к исходному файлу, который я изменил, указав атрибут Path в теге файла
Шаг 4:
Теперь базовая страница пользовательского просмотра доступна вместе с веб-частью. Теперь, как интегрировать пользовательскую страницу просмотра с определением списка. Создайте пользовательское определение списка и для всех представлений, определенных в схеме, укажите «SetupPath» для использования «CustomViewPage.aspx». Теперь страница пользовательского представления будет использоваться в качестве страницы базового просмотра для всех представлений, определенных в определении списка, а также представления, созданные позже, также будут использовать «CustomViewpage.aspx» в качестве базовой страницы. Пример фрагмента для объявления представлений внутри schema.xml выглядит следующим образом:
Установите и активируйте функцию определения пользовательского списка.
Теперь со всеми этими шагами, когда вы создаете список на основе этого пользовательского определения списка, тогда все созданные представления будут использовать «CustomViewPage.aspx» для создания страниц представления, и ваша пользовательская веб-часть будет отображаться вместо OOB dataformwebpart. Представления, которые вы будете создавать после создания списка (через пользовательский интерфейс, через объектную модель), также будут использовать «CustomViewpage.aspx» в качестве базовой страницы для создания страниц представления.
По какой-то причине я все еще не могу увидеть CustomViewPage.aspx с моей пользовательской веб-частью. Я что-то пропустил или чего-то не хватает в этой статье.