首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式创建新DocumentSet时出现异常[SharePoint]

以编程方式创建新DocumentSet时出现异常[SharePoint]
EN

Stack Overflow用户
提问于 2018-05-11 14:54:14
回答 1查看 281关注 0票数 0

当我尝试使用Visual Studio aspx页面在SharePoint 2016中创建一个新文档集时,我得到了异常。异常:对象引用未设置为对象的实例。

请帮帮忙。

站点示例url:http://dev-office.my-site.local

列表(库)名称: TestSolution

库已存在,文档集可用,并且是在此库中手动创建的。ApplicationPage1.aspx用作为当前库创建新DocumentSet的默认表单。

С代码如下:

ApplicationPage1.aspx有四个控件:两个TextBox (名称,描述),一个按钮和用于显示错误的标签。单击OnClick action="createDocSetButton_Click“按钮,这将创建一个新的文档集。

代码语言:javascript
复制
    <%@ 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它有一个简单的方法,绑定到一个按钮并创建一个文档集。

代码语言:javascript
复制
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;
        }            

    }

}
}
EN

回答 1

Stack Overflow用户

发布于 2018-05-28 17:07:50

答:问题出在区域设置上,命名时只能使用西里尔文或拉丁文。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50286655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档