我有两个列,需要根据它们进行排序。第1栏:优先事项第2栏:老化。
第一个排序需要通过检查第一列来完成。如果优先级是尽快,这些项目需要显示第一,然后它需要根据老化最高的第二列进行排序。此列表中的项目将不断添加。
我已尝试创建工作流,但没有看到相同的选项。
有什么建议吗。
你好,雷纳托。
发布于 2016-02-22 22:20:45
列表视图的默认排序有什么问题?它似乎满足了你的需求。

在第一个排序列中,设置优先级,在第二个列中,设置年龄,不是?
编辑:您不能使用此解决方案,因为您的排序中需要一些逻辑。
在本例中,我建议使用事件接收器和自定义列。假设我们将此列命名为"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.
}https://stackoverflow.com/questions/35554436
复制相似问题