1

「ページ」ライブラリに新しい発行ページをアップロードする機能を作成しようとしていますが、思いどおりに動作しません。SharePoint Designer を使用してライブラリを表示すると、発行ページが表示されますが、Internet Explorer を使用すると表示されません。

この機能では、ContentTypeId、ContentTye、Author、Title、FileRef、FileDirRef、FileLeafRef、FileType、LinkFilenameNoMenu、LinkFilename、および DocIcon のプロパティを構成します。以前の機能で同じ問題に直面しましたが、ContentTypeId プロパティを配置することで解決しました。この場合、エラーがどこにあるのか正確にはわかりません。

4

4 に答える 4

1

これらのリンクを参照してください

http://blog.mastykarz.nl/provisioning-publishing-pages-features-declarative-markup/

于 2009-06-11T07:52:25.790 に答える
1

次のコードを使用して、コンテンツ タイプに基づいて既にプロビジョニングされていると見なされるページ レイアウトに基づいて発行ページを作成します。コードは、機能の FeatureActivated イベント ハンドラーで実行されます。

    using (SPWeb ParentWeb = properties.Feature.Parent as SPWeb)
    {
            PublishingWeb webpublish = PublishingWeb.GetPublishingWeb(ParentWeb);

            //retrieve the layout associated with our custom content type
            PageLayout[] layouts = webpublish.GetAvailablePageLayouts(new SPContentTypeId(MyContentTypeID));

            //first layout considered, as this is the one created by this feature
            PageLayout MyPageLayout = layouts[0];

            PublishingPageCollection PublishingPages = webpublish.GetPublishingPages();

            PublishingPage newPage = PublishingPages.Add("NewPublishingPageName.aspx", MyPageLayout);
            newPage.Title = "My first publishing page";

            newPage.ListItem.Update();

            //check-in and republish the page
            SPFile listItemFile = newPage.ListItem.File;

            //check that the file is not checked out - if it is,  check it in.
            if (listItemFile.CheckOutStatus != SPFile.SPCheckOutStatus.None)
            {
                listItemFile.CheckIn("Initial default content added.");
            }

            listItemFile.Publish("");
            listItemFile.Approve("");                
    }
于 2009-05-04T08:30:54.103 に答える
0

Tudor と同様のソリューションがあります。念のため、そのコードを公開します。

...SiteCollection (SPSite) を取得...

PublishingSite pSite = new PublishingSite(site);
PageLayout layout = pSite.PageLayouts["MyLayout"];

PublishingWeb pWeb = PublishingWeb.GetPublishingWeb(site);

if(pWeb.GetPublishingPages()[pWeb.PagesList.Title + "/" + "MyPage.aspx"] == null)
{
  PublishingPage page = pWeb.GetPublishingPages().Add("MyPage.aspx", layout);
  page.Title = "MyTitle";
  page.Update();
  page.CheckIn("Added MyPage.aspx");
}
于 2009-06-04T16:25:52.530 に答える