В 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();
}
Так что, кроме не очевидного шаманства с преобразованием строки в коллекцию и обратно, ничего сложного нет.
Комментариев нет:
Отправить комментарий