[英]Exception on programmatically create new DocumentSet [SharePoint]
當我嘗試使用Visual Studio aspx頁面在SharePoint 2016中創建新文檔集時,出現異常。 例外:對象引用未設置為對象的實例。
請幫忙。
網站示例網址: http://dev-office.my-site.local
列表(庫)名稱:TestSolution
該庫已經存在,文檔集可用,並且已在該庫中手動創建。 ApplicationPage1.aspx用作默認表單,用於為當前庫創建新的DocumentSet。
下面的代碼:
ApplicationPage1.aspx共有四個控件:兩個TextBox(名稱,描述),一個Button和用於顯示錯誤的標簽。 在OnClick action =“ createDocSetButton_Click”按鈕上,這將創建一個新的文檔集。
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ApplicationPage1.aspx.cs" Inherits="SharePointProject17.Layouts.SharePointProject17.ApplicationPage1" DynamicMasterPageFile="~masterurl/default.master" %>
<%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
</asp:Content>
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<p>
Name: <asp:TextBox ID="nameTextbox" runat="server"></asp:TextBox>
</p>
<p>
Description: <asp:TextBox ID="descriptionTextbox" runat="server"></asp:TextBox>
</p>
<asp:Button ID="createDocSetButton" OnClick="createDocSetButton_Click" runat="server" Text="Create Document Set" />
<asp:Label ID="resultLabel" runat="server" Text=""></asp:Label>
</asp:Content>
<asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
</asp:Content>
<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >
</asp:Content>
ApplicationPage1.aspx.cs它具有綁定到按鈕並創建文檔集的簡單方法。
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Collections;
using System.Collections.Generic;
using Microsoft.Office.DocumentManagement.DocumentSets;
using System.IO;
using System.ComponentModel;
using System.Web;
using Microsoft.SharePoint.Client;
namespace SharePointProject17.Layouts.SharePointProject17
{
public partial class ApplicationPage1 : LayoutsPageBase
{
protected void Page_Load(object sender, EventArgs e)
{
nameTextbox.Focus();
}
protected void createDocSetButton_Click(object sender, EventArgs e)
{
//Get the Shared Documents document library
SPWeb currentWeb = SPContext.Current.Web;
SPList sharedDocsLib = currentWeb.Lists["TestSolution"];
//You can use a hashtable to populate properties of the document set
Hashtable docsetProperties = new Hashtable();
docsetProperties.Add("Name", nameTextbox.Text);
docsetProperties.Add("Description", descriptionTextbox.Text);
//Create the document set
try
{
DocumentSet newDocSet = DocumentSet.Create(sharedDocsLib.RootFolder,
nameTextbox.Text, sharedDocsLib.ContentTypes["Document Set"].Id,
docsetProperties, true);
resultLabel.Text = "Document set created";
}
catch (Exception ex)
{
resultLabel.Text = "Error: " + ex.Message;
}
}
}
}
答:問題出在語言環境中,命名時必須僅使用西里爾字母或拉丁字母。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.