我們可以通過
SPListCollection類的
Add方法添加一個列表到網站集合內的多個網站中。
下面的例子將在每個網站裡建立一個一般列表,列表的標題和描述資訊來自兩個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
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命名空間。
如果想要從每個網站中刪除一個列表,可以使用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
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方法的傳參。
代碼需要添加Microsoft.SharePoint命名空間。