Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Sharepoint 2010自动生成的工作流列_C#_Sharepoint_Workflow - Fatal编程技术网

C# Sharepoint 2010自动生成的工作流列

C# Sharepoint 2010自动生成的工作流列,c#,sharepoint,workflow,C#,Sharepoint,Workflow,是否可以更改工作流自动生成列的顺序(从最后一个位置到第二个位置)?我需要以编程方式执行此操作,而不是在库>修改视图中 编辑: 我在VisualStudio中创建的整个工作流,它是一个自定义关联、启动和任务表单 EDIT2: 我想出来了,只需在onWorkflowActivated方法中重新排序视图: private void onWorkflowActivated_Invoked(object sender, ExternalDataEventArgs e) { stri

是否可以更改工作流自动生成列的顺序(从最后一个位置到第二个位置)?我需要以编程方式执行此操作,而不是在库>修改视图中

编辑: 我在VisualStudio中创建的整个工作流,它是一个自定义关联、启动和任务表单

EDIT2: 我想出来了,只需在onWorkflowActivated方法中重新排序视图:

private void onWorkflowActivated_Invoked(object sender, ExternalDataEventArgs e)
    {
        string colName = workflowProperties.TemplateName;
        SPView defaultView = workflowProperties.List.DefaultView;
        if (defaultView.ViewFields.SchemaXml.Contains(colName))
        {       
            System.Collections.Specialized.StringCollection collStrings = defaultView.ViewFields.ToStringCollection();
            List<string> fields = new List<string>();
            foreach (string field in collStrings)
            {
                fields.Add(field);
            }

            if (fields.IndexOf(colName) != 2)
            {
                defaultView.ViewFields.MoveFieldTo(colName, 2);
                defaultView.Update();
            }
        }
    }
private void onWorkflowActivated_调用(对象发送方,ExternalDataEventArgs e)
{
字符串colName=workflowProperties.TemplateName;
SPView defaultView=workflowProperties.List.defaultView;
if(defaultView.ViewFields.SchemaXml.Contains(colName))
{       
System.Collections.Specialized.StringCollection collStrings=defaultView.ViewFields.ToStringCollection();
列表字段=新列表();
foreach(字符串中的字符串字段)
{
字段。添加(字段);
}
if(fields.IndexOf(colName)!=2)
{
defaultView.ViewFields.MoveFieldTo(colName,2);
defaultView.Update();
}
}
}

通过创建自定义工作流关联页面和代码隐藏,您可以控制工作流与列表关联的逻辑。您应该将此文档作为一个起点:

你能提供更多细节吗?是否要以编程方式修改/创建视图,或者在其他位置需要不同的列顺序?我想在工作流关联后重新排序列。我需要在第二位自动生成列,因为如果列表项被批准/拒绝,很难阅读包含30多个列的列表。感谢回复,我已经为我的工作流定制了关联和启动表单。