SharePoint - Как я могу настроить NewForm.aspx в пользовательской функции?
Я создал пользовательский список на сайте SharePoint и сгенерировал проект Visual Studio 2008 с помощью SharePoint Solution Generator. Я могу упаковать это как функцию и установить. Он отлично работает на моем сервере.
После тестирования я смог добавить пользовательскую мастер-страницу к функции, которая развернута в папке _catalogs/masterpage. Вот:
<Elements Id="2196306F-3F37-40b5-99CF-42E89B93888A" xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="DefaultMasterPage" Url="_catalogs/masterpage" RootWebOnly="FALSE">
<File Url="gcbranding.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" />
</Module>
</Elements>
Теперь, когда у меня есть настраиваемая мастер-страница на моем сайте, я хотел бы использовать ее для создания новых элементов. Но я не хочу устанавливать мастер из SharePoint Designer.
Возвращаясь к сгенерированному решению, у него есть NewForm.aspx и т. Д. Со схемой списка. Как я...
- Настроить форму, отображаемую для новых элементов, и перенаправить ее на страницу thankyou.aspx вместо отображения всех элементов списка?
- Правильно ли установить URL главной страницы?
Я заблудился в пункте № 1. Нужно ли создавать собственную веб-часть и вставлять ее в NewForm.aspx?
По пункту 2 я добился некоторого прогресса, но столкнулся с проблемой. Если я установлю мастер как это в моем NewForm.aspx...
MasterPageFile="~/masterurl/gcmaster.master"
Он установится нормально, но когда я захожу на сайт, я получаю сообщение об ошибке, потому что ~ не разрешено в URL. Если я использую _catalogs/masterpage в директиве, он не найдет мастер, потому что URL является относительным. Кажется, работает только этот код:
MasterPageFile="../../_catalogs/masterpage/gcmaster.master"
Как лучше всего настроить файл главной страницы в SharePoint при развертывании пользовательской функции / решения?
5 ответов
"Masterpage: я думаю, что вы хотите"~masterurl/gcmaster.master
". нет "/" между "~" и "мастером".
Re NewForm: Вы можете создать свою собственную страницу кода для NewForm.aspx, изменить Inherits
приписать свой собственный класс. Я думаю, что я бы начал с того, что мой пользовательский код наследовал от SharePoint.SharePoint.WebPartPages.WebPartPage, и пошел бы оттуда.
Настроить форму, отображаемую для новых элементов, и перенаправить ее на страницу thankyou.aspx вместо отображения всех элементов списка?
Ответ SIMPLEST: измените ссылку "Добавить новый элемент", чтобы добавить исходный URL для своей страницы благодарности. Например, вместо (мне пришлось пропустить http):
www.yoursite.com/Lists/Links/NewForm.aspx
вы измените его на:
www.yoursite.com/Lists/Links/NewForm.aspx?Source=www.yoursite.com/ThankYou.aspx
Когда пользователь нажимает кнопку Отправить со страницы NewForm, они будут перенаправлены на ThankYou.aspx.
Однако вам, вероятно, придется использовать SharePoint Designer, чтобы изменить ссылку.
Если вы хотите повторно использовать главную страницу на различных страницах.aspx, лучше установить ее в качестве настраиваемой главной страницы. В WSS нет страницы, которая позволила бы вам сделать это легко, поэтому вам лучше либо щелкнуть правой кнопкой мыши по файлу _catalogs / masterpage / gcmaster.master в SharePoint Designer и выбрать "Настроить как пользовательскую главную страницу", либо установить его на сервере через PowerShell (Заголовок сценария SharePoint доступен здесь: http://sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=7).
$web = Get-SPWeb("http://mysiteurl")
$web.CustomMasterUrl = "_catalogs/masterpage/gcmaster.master"
$web.Update()
Затем в директиве @Page вашей страницы.aspx вы можете установить:
MasterPageFile="~/masterurl/custom.master"
Помните, что при этом все страницы ASPX на вашем сайте, которые ссылаются на "~/masterurl/custom.master", используют вашу страницу gcmaster.master.
В качестве альтернативы, вы можете пропустить все это, и для вашей страницы.aspx просто добавьте директиву @Page, которая выглядит следующим образом:
MasterPageFile="~/site/_catalogs/masterpage/gcmaster.master"
Лучший способ сделать это - открыть NewForm.aspx в SharePoint Designer, изменить:
MasterPageFile = "~ masterurl / default.master"
в
MasterPageFile="~masterurl/custom.master"
Это, очевидно, отредактирует текущий экземпляр, но если вы хотите развернуть его с помощью def или site site, вам нужно создать страницу NewForm.aspx в той же папке, что и schema.xml, в папке экземпляра списка.
Надеюсь, это поможет.
Переопределите событие OnPreInit на веб-странице и вставьте следующую строку:
this.MasterPageFile = SPContext.Current.Web.CustomMasterUrl;
(если вы используете пользовательскую главную страницу)
Если вы используете главную страницу по умолчанию, используйте следующую строку:
this.MasterPageFile = SPContext.Current.Web.MasterUrl;
НТН,
Джеймс