SharePoint 2013 - změna odkazu pro editaci ContentTypu

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 Typ
  • programově kodem

XML definice

Lze to provést XML definici pro zaklani custom listu v souboru Schema.xml.

<ContentTypes>
  <ContentType ID="0x0100DD4C86551351479685D17668C23A9883" Name="OdeslanaDatovaZprava" Group="Moje" Description="" Inherits="TRUE" Version="0">
    <FieldRefs>
      <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Zpráva ID" Name="Title" Required="TRUE" />
        <FieldRef ID="{67bda4af-695a-4649-8e70-e0f97b556e1e}" DisplayName="Čas doručení" Required="FALSE" Name="DeliveryTime" Format="DateTime" />
        ....
        ....
    </FieldRefs>
    <XmlDocuments>
      <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
        <FormUrls xmlns="http://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

http://blog.qumsieh.ca/2009/05/15/how-to-change-the-default-editform-newform-and-dispform/

Comments are closed

O blogu

Tento blog je místem, kde sdílím své zkušenosti, části zdrojových kódů, odkazy apod. Zdroje jsou zaměřeny převážně na problematiku portálového řešení SharePoint a vývoj webů v prostředí Microsoft. Mým cílem není úplně obsahnout konkrétní řešení, ale pouze tu část, kterou potřebuji. Pokud se problematika obsáhlejší, jsou pod článkem odkazy na související informace.

O autorovi

Oldřich Zátopek
Zabývám se vývojem webových aplikací internet/intranet na Microsoft technologiích. Hlavní specializace je SharePoint. LinkedIn