SharePoint 2013 - Změna odkazu pro editaci ContentType
Problém
Potřebuji při editaci obsahu v listu editovat data ve vlastní (custom) stránce.
Řešení
Je potřeba změnit URL v Content Typu na požavanou stránku. Lze to udělat minimálně 2 způsoby (viz níže):
- V XML definici pro Content Type
- programově kodem
XML definice
Lze to provést XML definici pro zaklani custom listu v souboru Schema.xml.
<ContentTypes>
<ContentType Group="Moje" Description="" Inherits="TRUE" Version="0">
<FieldRefs>
<FieldRef DisplayName="Zpráva ID" Required="TRUE" />
<FieldRef DisplayName="Čas doručení" Required="FALSE" Format="DateTime" />
....
....
</FieldRefs>
<XmlDocuments>
<XmlDocument NamespaceURI="https://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
<FormUrls xmlns="https://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
<Display>_layouts/15/PROJEKT/dispform.aspx</Display>
<Edit>_layouts/15/PROJEKT/editform.aspx</Edit>
<New>_layouts/15/PROJEKT/newform.aspx</New>
</FormUrls>
</XmlDocument>
</XmlDocuments>
</ContentType>
</ContentTypes>
Programově
Lze to udělat následujícím kódem. Využití např. v konzolové aplikaci pro jednorázové nasazení.
SPWeb web = SPContext.Current.Web;
web.AllowUnsafeUpdates = true;
SPContentType ct = web.ContentTypes["Muj Your Content Type"];
ct.EditFormUrl = "_layouts/editform.aspx";
ct.NewFormUrl = "_layouts/newform.aspx";
ct.DisplayFormUrl = "_layouts/dispform.aspx";
ct.Update();
Odkazy
- How To Change the Default EditForm, NewForm and DispForm
https://blog.qumsieh.ca/2009/05/15/how-to-change-the-default-editform-newform-and-dispform/