gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:56 25 4
gpt4 key购买 nike

我通过一项功能以编程方式将两个新字段添加到现有的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com