Программное создание набора документов в sharepoint 2010

#sharepoint #sharepoint-2010

#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; 
        }

    }
  

Я не получаю никаких исключений.При нажатии кнопки я перенаправляюсь на ошибку, подобную следующей

введите описание изображения здесь

Однако набор документов с именем NewDocumentSet3 создается в библиотеке документов, но он выглядит как папка (я имею в виду значок). когда я захожу в библиотеку документов -> вкладка документы-> Новый документ, я не получаю тип набора документов.Пожалуйста, посоветуйте мне по этому вопросу. Заранее спасибо

Комментарии:

1. отключите пользовательские ошибки (в web.config) для вашего веб-приложения, чтобы увидеть фактическую ошибку.

Ответ №1:

  1. Прежде всего, отключите пользовательские ошибки, как показано на скриншотах.
  2. Затем замените ваш перехват SPException на перехват всех исключений.
  3. Еще лучше протестировать подобный код в отдельном консольном приложении, а не прямо внутри обработчиков.
  4. Поищите в Интернете некоторые ресурсы о том, как отлаживать приложения SharePoint. Точка останова поможет вам пройти долгий путь в этой конкретной ситуации.
  5. Я очень настороженно отношусь к вашему списку под названием «отслеживание [пробелов]». Мне кажется подозрительным.

Ответ №2:

Попробуйте добавить

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

к свойствам hashset, которые gest передал в метод DocumentSet.Create DocumentSet.Create .