根据需要进行排序,我有两列。第1栏:优先第2栏:老龄化。
排序第一个需要通过检查列来完成1.如果优先级是ASAP,那么这些项目需要显示1st,然后需要根据老化最高的第2列进行排序。此列表中的项目将不断添加。
我尝试创建工作流程但没有看到相同的选项。
任何建议。
此致 雷纳托。
答案 0 :(得分:0)
列表视图的默认排序有什么问题?这似乎符合您的需求。
在第一个排序列中,您设置优先级,在第二个列中,您设置了Aging,no?
编辑:您无法使用此解决方案,因为您需要某种逻辑。
在这种情况下,我建议使用事件接收器和自定义列。我们假设我们将此列命名为#34; Position"。该解决方案需要一些开发方面的知识。
您的列位置会存储一个整数。这个整数可以通过放在事件接收器中的逻辑来计算。最后,您的列表将按列位置排序。
在事件接收器中,您的工作是每次更改时计算所有项目的位置:
public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemUpdated(properties);
this.EventFiringEnabled = false; //Prevent the Event Receiver to fire twice
SPList list = properties.ListItem.Parent;
SPListItemCollection items = list.GetItems(); //Get all items or use some query to get the items you want to retrieve
try
{
SetOrder(items); //This function define the column position
}
catch (Exception ex)
{
//LOG
}
finally
{
this.EventFiringEnabled = true;
}
}
private void SetOrder(SPListItemCollection items)
{
//Here reorder items in your list by setting the column position according to your needs.
}