现在的位置: 首页 > 综合 > 正文

WSS3SDK之:如何创建或删除列表

2013年08月25日 ⁄ 综合 ⁄ 共 3518字 ⁄ 字号 评论关闭

可以通过SPListCollection类的Add方法新建一个列表。
下面的样例会根据用户的输入,新建一个一般列表,日历或通知。Switch语句用于根据用户输入的列表类型设定列表的模板。

注意
本样例中使用Microsoft.SharePoint.SPContent类成员来获取当前的网站集,网站和列表。在HTTP上下文以外,比如在命令行应用或Windows应用中,这种方式是没法用的。
VB

Dim mySite As SPWeb = SPContext.Current.Web
Dim lists As SPListCollection = mySite.Lists

Dim listTitle As String = TextBox1.Text
Dim listDescription As String = TextBox2.Text
Dim listType As String = ListBox1.SelectedItem.Text

Dim listTemplateType As New SPListTemplateType()

Select Case listType
    
Case "Generic List"
        listTemplateType 
= SPListTemplateType.GenericList
        
Exit 
    
Case "Events"
        listTemplateType 
= SPListTemplateType.Events
        
Exit
    
Case "Announcements"
        listTemplateType 
= SPListTemplateType.Announcements
        
Exit 
End Select
lists.Add(listTitle, listDescription, listTemplateType)


C#

SPWeb mySite = SPContext.Current.Web;
SPListCollection lists 
= mySite.Lists;

string listTitle = TextBox1.Text;
string listDescription = TextBox2.Text;
string listType = ListBox1.SelectedItem.Text;

SPListTemplateType listTemplateType = new SPListTemplateType();

switch(listType)
{
    
case "Generic List":
    {
        listTemplateType 
= SPListTemplateType.GenericList;
        
break;
    }

    case "Events":
    {
        listTemplateType 
= SPListTemplateType.Events;
        
break;
    }

    case "Announcements":
    {
        listTemplateType 
= SPListTemplateType.Announcements;
        
break;
    }
}

lists.Add(listTitle, listDescription, listTemplateType);

代码需要添加Microsoft.SharePoint命名空间。
本例中实例化了一个SPListTemplateType对象,用于存放用户指定的列表类型。该对象是Add方法的一个必要参数。该样例代码假设存在两个textbox,用于输入标题和描述。同时,还有一个drop-down list用于选择列表类型。

除了可以使用SPListTemplateType枚举来创建一个列表外,您也可以用SPListTemplate对象创建一个列表。SPWeb类的ListTemplates属性可以用于返回一个列表模板对象的集合,然后通过名称索引的方式指定要用的列表模板。下面的示例中将展示这种实现方法。该样例假定当前在一个会议工作区网站中。

VB

Dim mySite As SPWeb = SPContext.Current.Web

Dim template As SPListTemplate = mySite.ListTemplates("Decisions")
mySite.Lists.Add(
"My Decisions""This is a list of decisions"
   template)

 

C#

SPWeb mySite = SPContext.Current.Web;

SPListTemplate template = mySite.ListTemplates["Decisions"];
mySite
.Lists.Add("My Decisions", "This is a list of decisions", 
   template);

该代码需要引用Microsoft.SharePoint命名空间。
下面的例子中,我们可以使用SPSite类的GetCustomListTemplates方法来返回特定站点中的自定义列表模板,然后我们会基于特定的一个列表模板新建一个列表。
VB

Dim siteCollection As SPSite = SPContext.Current.Site
Dim mySite As SPWeb = SPContext.Current.Web

Dim listTemplates As SPListTemplateCollection 
   
= siteCollection.GetCustomListTemplates(mySite)
Dim listTemplate As SPListTemplate 
   
= listTemplates("Custom List Template")
mySite.Lists.Add(
"Custom List""A list created from 
   a custom list template in the list template catalog", listTemplate)


C#

SPSite siteCollection = SPContext.Current.Site;
SPWeb mySite 
= SPContext.Current.Web;

SPListTemplateCollection listTemplates 
   = siteCollection.GetCustomListTemplates(mySite);
SPListTemplate listTemplate 
= listTemplates["Custom List Template"];
mySite.Lists.Add(
"Custom List""A list created from 
   a custom list template in the list template catalog", listTemplate);

该代码需要引用Microsoft.SharePoint命名空间。
如果要删除某列表,我们必须在Delete方法中指定列表的GUID。可以通过SPList类的ID属性得到GUID。

VB

Dim mySite As SPWeb = SPContext.Current.Web
Dim lists As SPListCollection = mySite.Lists

Dim list As SPList = lists(TextBox1.Text)
Dim listGuid As System.Guid = list.ID

lists.Delete(listGuid) 

C#

SPWeb mySite = SPContext.Current.Web;
SPListCollection lists 
= mySite.Lists;

SPList list = lists[TextBox1.Text];
System.Guid listGuid 
= list.ID;

lists.Delete(listGuid);

该代码需要引用Microsoft.SharePoint命名空间。
该样例假设有一个textbox,用户可以指定要删除列表的名称。

抱歉!评论已关闭.