基于两个不同列中的值自定义SharePoint列表排序

时间:2016-02-22 13:02:33

标签: sorting sharepoint

根据需要进行排序,我有两列。第1栏:优先第2栏:老龄化。

排序第一个需要通过检查列来完成1.如果优先级是ASAP,那么这些项目需要显示1st,然后需要根据老化最高的第2列进行排序。此列表中的项目将不断添加。

我尝试创建工作流程但没有看到相同的选项。

任何建议。

此致 雷纳托。

1 个答案:

答案 0 :(得分:0)

列表视图的默认排序有什么问题?这似乎符合您的需求。

enter image description here

在第一个排序列中,您设置优先级,在第二个列中,您设置了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.
}