Sharepoint 2013:创建用于在添加新字段时更新列表视图的脚本
Sharepoint 2013: Create a script for updating a list view when i adda new field
我创建了几个列表,每个列表都有几个不同的视图,有人要求我创建一个允许这样做的脚本:每次在列表中添加一个新字段时,这个字段必须自动添加到所有已经存在的观点。我需要一个脚本,因为有太多的列表和太多的视图,一个视图一个视图地完成它很繁琐。有没有办法以编程方式执行此操作?
您可以为列表创建一个事件接收器(假设自定义列表),然后将 filed 添加到所有视图。
示例代码:
SPWeb web = site.OpenWeb();
SPList list = web.Lists["TestListLee"];
var tmpViews = new List<SPView>();
foreach (SPView view in list.Views)
{
if (!view.ViewFields.Exists("myField"))
{
view.ViewFields.Add("myField");
tmpViews.Add(view);
}
}
for (int i = 0; i < tmpViews.Count; i++)
{
tmpViews[i].Update();
}
我创建了几个列表,每个列表都有几个不同的视图,有人要求我创建一个允许这样做的脚本:每次在列表中添加一个新字段时,这个字段必须自动添加到所有已经存在的观点。我需要一个脚本,因为有太多的列表和太多的视图,一个视图一个视图地完成它很繁琐。有没有办法以编程方式执行此操作?
您可以为列表创建一个事件接收器(假设自定义列表),然后将 filed 添加到所有视图。
示例代码:
SPWeb web = site.OpenWeb();
SPList list = web.Lists["TestListLee"];
var tmpViews = new List<SPView>();
foreach (SPView view in list.Views)
{
if (!view.ViewFields.Exists("myField"))
{
view.ViewFields.Add("myField");
tmpViews.Add(view);
}
}
for (int i = 0; i < tmpViews.Count; i++)
{
tmpViews[i].Update();
}