在sharepoint 2010中以编程方式创建文档集

时间:2011-06-03 13:17:20

标签: sharepoint sharepoint-2010

我正在以编程方式单击事件

以编程方式创建文档集
 public void btnCreateDocumentSet_Click(object sender, EventArgs e)
    {
        try
        {

            lblError.Text = string.Empty;
            SPSecurity.RunWithElevatedPrivileges(() =>
                {
                    using (web = SPControl.GetContextSite(Context).RootWeb)
                    {
                        web.AllowUnsafeUpdates = true;
                        String url = web.Lists[" Tracker"].RootFolder.ServerRelativeUrl.ToString();

                        SPList list = web.Lists["Tracker"];

                        Hashtable props = new Hashtable();

                        props.Add("Number", "item1");
                        props.Add("Type", "item2");

                        DocumentSet ds = DocumentSet.Create(list.RootFolder, "NewDocumentSet3", web.ContentTypes["MydocumentSet2"].Id, props, true);
                        //test   


                        //web.Dispose(); 

                    }
                }
            );

        }

        catch (SPException ex)
        {

            lblError.Text = ex.Message; 
        }

    }

我没有得到任何例外。点击按钮我被重定向到如下错误

enter image description here

然而,名为NewDocumentSet3的文档集是在文档库中创建的,但它看起来像一个文件夹(我的意思是图标)。当我去文档库 - >文档标签 - >新文档我没有得到文档集类型.Kindly在这个问题上建议我。 提前致谢

2 个答案:

答案 0 :(得分:1)

  1. 首先,请关闭自定义错误,例如屏幕截图告诉您的内容。
  2. 然后使用所有异常的catch来替换SPException的catch。
  3. 更好的是,在单独的控制台应用程序中测试这样的代码,而不是在处理程序内部。
  4. 在互联网上查找有关如何调试SharePoint应用程序的一些资源。在这种特殊情况下,断点将为您提供很长的路要走。
  5. 我非常警惕你的名单“[space] Tracker”。看起来很可疑。

答案 1 :(得分:1)

尝试添加

props.Add("HTML_x0020_File_x0020_Type", "SharePoint.DocumentSet");  

到传入DocumentSet.Create方法的属性hashset。