0

我有以编程方式创建发布网站的代码。它工作正常,除了一件事。我必须将开箱即用的文档列表视图 Web 部件添加到 default.aspx 页面。它添加了 Web 部件,但底部没有添加文档链接,就像您手动添加文档 Web 部件时看到的那样。奇怪的是,如果我编辑 Web 部件,会有列表视图、外观、布局和高级部分。我单击“确定”而不进行更改,如果我返回并编辑 Web 部件,则会添加 2 个部分。AJAX 选项和杂项。如果我再次单击确定而不进行更改,则会显示添加文档链接。

string pageURL = "default.aspx";

SPFile destFile = newWeb.GetFile(pageURL);
if (destFile.Exists)
{
  if (destFile.CheckOutType == SPFile.SPCheckOutType.None)
    destFile.CheckOut();
}
else
{
    pageURL = "pages/default.aspx";
    destFile = newWeb.GetFile(pageURL);
    if (destFile.CheckOutType == SPFile.SPCheckOutType.None)
        destFile.CheckOut();
}

SPLimitedWebPartManager mgr = 
    newWeb.GetLimitedWebPartManager(pageURL, PersonalizationScope.Shared);

// add the document library
SPList docLib;

if (!bHasDocuments)
{
    // create the document library
    Guid docLibGuid = newWeb.Lists.Add(
        "Documents", 
        "", 
        SPListTemplateType.DocumentLibrary);

    docLib = newWeb.Lists[docLibGuid];
}
else
{
    docLib = newWeb.Lists["Documents"];
}

docLib.OnQuickLaunch = true;
docLib.Update();

SPDocumentLibrary spDocLib = (SPDocumentLibrary)docLib;
spDocLib.EnableVersioning = true;
spDocLib.EnableMinorVersions = false;

// add the doc lib to the home page
ListViewWebPart wpDoc = new ListViewWebPart();
wpDoc.ZoneID = "TopZone";
wpDoc.ListName = docLib.ID.ToString("B").ToUpper();
wpDoc.ViewGuid = docLib.DefaultView.ID.ToString("B").ToUpper();

// Add the web part
mgr.AddWebPart(wpDoc, wpDoc.ZoneID, 20);

任何想法如何让 Web 部件包含“添加文档”链接?

4

1 回答 1

0

尝试使用 XsltListViewWebPart wpDoc = new XsltListViewWebPart();

代替 ListViewWebPart wpDoc = new ListViewWebPart();

它在 SP2013 中对我有用。

于 2013-03-15T13:21:00.677 回答