В SharePoint есть такой тип, как задача (task) на базе которых можно построить много всяких интересных и полезных вещей, включая вполне полноценный корпоративный планировщик задач. Единственная вещь, которая не совсем очевидна при работе с задачами - это как программно создать или изменить список предшествующих задач. На самом деле, ничего особо сложного в этом нет.
Вот так, например, можно создать задачку с определенным предшественником:
protected void CreateChildTask(SPListItem parent) { var web = SPContext.Current.Web; var list = web.Lists["MyTasks"]; SPListItem item = list.Items.Add(); item[SPBuiltInFieldId.Title] = "Новая задача"; SPFieldLookupValueCollection predecessorItems = new SPFieldLookupValueCollection(); SPFieldLookupValue predecessor = new SPFieldLookupValue(parent.ID, parent.Title); predecessorItems.Add(predecessor); item[SPBuiltInFieldId.Predecessors] = predecessorItems.ToString(); item.Update(); }
А вот так можно добавить предшественника:
protected void UpdateChildTask(SPListItem parent, SPListItem task) { SPFieldLookupValueCollection predecessorItems = new SPFieldLookupValueCollection(task[SPBuiltInFieldId.Predecessors].ToString()); SPFieldLookupValue predecessor = new SPFieldLookupValue(parent.ID, parent.Title); predecessorItems.Add(predecessor); task[SPBuiltInFieldId.Predecessors] = predecessorItems.ToString(); task.Update(); }
Так что, кроме не очевидного шаманства с преобразованием строки в коллекцию и обратно, ничего сложного нет.
Комментариев нет:
Отправить комментарий