WSS3SDK之:如何在多个网站中添加或删除一个列表
我们可以通过SPListCollection类的Add方法添加一个列表到网站集内的多个网站中。
下面的例子将在每个网站里创建一个一般列表,列表的标题和描述信息来自两个textbox。SPSite类的AllWebs属性可用于返回当前站点集内所有网站的集合。
本样例假设在一个包含from的.aspx页面中有两个textbox。
VB
C#
如果想要从每个网站中删除一个列表,可以使用SPListCollection类的Delete方法。下面的代码利用循环嵌套来深入查找标题与文本框中输入的内容相匹配的列表。本样例假设在一个包含from的.aspx页面中有一个textbox。
VB
C#
代码需要添加Microsoft.SharePoint命名空间。
下面的例子将在每个网站里创建一个一般列表,列表的标题和描述信息来自两个textbox。SPSite类的AllWebs属性可用于返回当前站点集内所有网站的集合。
本样例假设在一个包含from的.aspx页面中有两个textbox。
VB
Dim listTitle As String = TextBox1.Text.ToString()
Dim listDescription As String = TextBox2.Text.ToString()
Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb
For Each web In allWebs
Dim allLists As SPListCollection = web.Lists
allLists.Add(listTitle, listDescription, SPListTemplateType.GenericList)
Next web
Dim listDescription As String = TextBox2.Text.ToString()
Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb
For Each web In allWebs
Dim allLists As SPListCollection = web.Lists
allLists.Add(listTitle, listDescription, SPListTemplateType.GenericList)
Next web
C#
string listTitle = TextBox1.Text.ToString();
string listDescription = TextBox2.Text.ToString();
SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;
foreach (SPWeb web in allWebs)
{
SPListCollection allLists = web.Lists;
allLists.Add(listTitle,listDescription, SPListTemplateType.GenericList);
}
代码需要添加Microsoft.SharePoint命名空间。string listDescription = TextBox2.Text.ToString();
SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;
foreach (SPWeb web in allWebs)
{
SPListCollection allLists = web.Lists;
allLists.Add(listTitle,listDescription, SPListTemplateType.GenericList);
}
如果想要从每个网站中删除一个列表,可以使用SPListCollection类的Delete方法。下面的代码利用循环嵌套来深入查找标题与文本框中输入的内容相匹配的列表。本样例假设在一个包含from的.aspx页面中有一个textbox。
VB
Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb
For Each web In allWebs
Dim allLists As SPListCollection = web.Lists
Dim i As Integer
For i = 0 To allLists.Count - 1
Dim list As SPList = allLists(i)
If list.Title = TextBox1.Text Then
Dim listGuid As Guid = list.ID
allLists.Delete(listGuid)
End If
Next i
Next web
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb
For Each web In allWebs
Dim allLists As SPListCollection = web.Lists
Dim i As Integer
For i = 0 To allLists.Count - 1
Dim list As SPList = allLists(i)
If list.Title = TextBox1.Text Then
Dim listGuid As Guid = list.ID
allLists.Delete(listGuid)
End If
Next i
Next web
C#
SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;
foreach (SPWeb web in allWebs)
{
SPListCollection allLists = web.Lists;
for (int i=0; i<allLists.Count; i++)
{
SPList list = allLists[i];
if (list.Title == TextBox1.Text)
{
Guid listGuid = list.ID;
allLists.Delete(listGuid);
}
}
}
在本例中,SPList类的Title属性用于在每个网站的列表的集合中标识该列表,判断其是否与指定的标题相同。ID属性返回该列表的唯一标识(GUID),用于Delete方法的传参。SPWebCollection allWebs = mySite.AllWebs;
foreach (SPWeb web in allWebs)
{
SPListCollection allLists = web.Lists;
for (int i=0; i<allLists.Count; i++)
{
SPList list = allLists[i];
if (list.Title == TextBox1.Text)
{
Guid listGuid = list.ID;
allLists.Delete(listGuid);
}
}
}
代码需要添加Microsoft.SharePoint命名空间。