c# - 以编程方式更改 Sharepoint 2007 列表中的字段顺序

标签 c# sharepoint spfield splist

我通过一项功能以编程方式将两个新字段添加到现有的 Sharepoint 列表中。字段添加成功,但无法调整列顺序。

此任务只需通过 UI 转到“列表设置”然后“列排序”即可完成,但我一直无法以编程方式完成该任务。

通过一些研究,我发现您可以使用表单的 SPContentType 来更改 FieldLink 的顺序(如下所示):

SPList list = web.Lists["Example List"];
if (list.ContentTypes.Count > 0) {
    SPContentType ct = list.ContentTypes[0];
    string[] names = {"Example_x0020_One", "Example_x0020_Two", "Example_x0020_Three"};
    ct.FieldLinks.Reorder(names);
    ct.Update();
}

在这个例子中,我的列表已经有“示例一”和“示例三”列,我稍后会添加“示例二”,然后尝试对它们进行排序。

但是这种方法对我不起作用,所以如果有人对此有意见,我们将不胜感激。

我看到的下一项是手动更改列表的 SchemaXml 以使字段具有正确的顺序,但我想看看这是否是最好的方法。

如有任何意见,我们将不胜感激,感谢您的帮助。

最佳答案

我查看了 Column 排序页面 (formEdt.aspx) 的源代码,看起来他们使用的是 Web 服务,而不是对象模型:

function DoBuildAndSubmit()
{
    var numFound, currentSelect, selectValue;
    var form = document.forms.aspnetForm;
    var numFields = form["numSelects"].value;
    var xml = "<Fields>";
    numFound = 0;
    while(numFound < numFields)
    {
        for(x = 0; x < numFields; x++)
        {
            currentSelect = form["FormPosition" + x];
            if(currentSelect.selectedIndex == numFound)
            {
                selectValue = currentSelect.options[numFound].value;
                xml = xml + "<Field Name=\"" + selectValue + "\"/>" + "\n";
                numFound++;
            }
        }
    }
    for(x = numFields ; x < 67; x++)
        xml  = xml + "<Field Name=\"" + form["FormPosition" + x].value + "\"/>"  + "\n";
    xml = xml + "</Fields>";
    document.frmLayoutSubmit["ReorderedFields"].value=xml;
    document.frmLayoutSubmit.action = "http://local/_vti_bin/owssvr.dll?CS=65001";
    document.frmLayoutSubmit.submit();
}

现在,可能可以通过对象模型来完成,但是当 UI 出现问题时我感觉不太好。

关于c# - 以编程方式更改 Sharepoint 2007 列表中的字段顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3936707/

相关文章:

.net - 我可以在没有 SharePoint 的情况下使用 K2 Blackpearl 吗?

sharepoint-2010 - SharePoint 2010 中的 DisplayPattern 有问题吗?

c# sharepoint 如何使用其他 SPListItem 的字段值设置 SPListItem 的字段值?

python - 如何通过Python上传本地PowerPoint文件到SharePoint目录

c# - 自定义依赖属性不起作用

c# - 在 ASP.NET Core 3 的类库中创建 TagHelper

c# - 如何从我的 C# 单元测试中通过 SWIG 调试到 Quantlib

SharePoint 列表 - vLookup 类型功能

c# - 以编程方式设置共享点列表项的字段值

c# - 从 ASP.NET 5 Controller VS 2015 获取 wwwroot 文件夹路径