SharePoint 讨论板常见的代码操作

SharePoint 讨论板常见的代码操作

        我们直入主题,讨论针对SharePoint 讨论板常用的代码操作有哪些呢?
1. 你的网站集和网站:
SPSite currentSite = SPContext.Current.Site;
SPWeb currentRootWeb = currentSite.RootWeb;
2. 假设我们有一个名为“MyDiscussionList”的讨论板列表。
        获得这个列表的GUID:
Guid myDiscussionListGUID = Guid.NewGuid();
foreach (SPList list in currentRootWeb.Lists)
{
    if (list.BaseTemplate.ToString() == "DiscussionBoard" && list.Title == "MyDiscussionList")
    {
        myDiscussionListGUID = list.ID; // Read GUID of Discussion List
        break;
    }
}
        小建议:
  • list.ItemCount将会返回所有讨论和答复。
  • list.Items.Count将只返回答复。
3. 获得你的列表:
SPList myDiscussionList = currentRootWeb.Lists.GetList(myDiscussionListGUID, false);
4. 创建新讨论:
SPListItem newItem = SPUtility.CreateNewDiscussion(myDiscussionList.Items, "New Message using code");
newItem["Body"] = "My new message content using code";
newItem.Update();
5. 读取所有讨论:
foreach (SPListItem folder in myDiscussionList.Folders)
{
        Response.Write("Folder Name: " + folder.Name + "
"); Response.Write("Folder ID: " + folder.ID + "
"); Response.Write("Attachments Count: " + folder.Attachments.Count + "
"); // Returns attachment count // Code to read attachment URL. for (int i = 0; i < folder.Attachments.Count; i++) { Response.Write("Attachment Url " + folder.Attachments.UrlPrefix + folder.Attachments + "
"); } // Read body of attachment Response.Write("Body: " + folder.Fields["Body"].GetFieldValueAsText(folder["Body"]) + "
"); }
6. 如果要删除一个讨论:
SPListItem listItemParentToDelete = null;
foreach (SPListItem folder in myDiscussionList.Folders)
{
    listItemParentToDelete = folder;
}
if (listItemParentToDelete != null)
{
    listItemParentToDelete.Delete();
}
7.遍历所有讨论答复:
foreach (SPListItem listItem in myDiscussionList.Items)
{
    Response.Write("Item DisplayName: " + listItem.DisplayName + "
"); // Returns Title of Discussion Response.Write("List ID: " + listItem.ID + "
"); Response.Write("List Folder ID: " + listItem.Fields["Parent Folder Id"].GetFieldValueAsText(listItem["Parent Folder Id"]).ToString() + "
"); // Returns ID of Parent Discussion Response.Write("Body: " + listItem.Fields["Body"].GetFieldValueAsText(listItem["Body"]) + "
"); // Create Parent List Item 创建父列表项目 int parentListID = Convert.ToInt32(listItem.Fields["Parent Folder Id"].GetFieldValueAsText(listItem["Parent Folder Id"])); SPListItem parentListItem = lvContentItemsDiscussionsList.GetItemById(parentListID); Response.Write("Parent List Item Name: " + parentListItem.Name + "
"); // Code to Reply to a Discussion Message 答复一个讨论 SPListItem reply = SPUtility.CreateNewDiscussionReply(parentListItem); reply["Body"] = "
Reply to the new message


From: Admin
Posted: Friday, July 20, 2007 4:01 AM
Subject: New message

My new message content
"; reply["TrimmedBody"] = "
Reply to the new message
"; reply.Update(); // Code to delete a discussion reply 删除一个答复 listItemToDelete = listItem; }
8. 删除一个讨论答复:
SPListItem listItemToDelete = null;
foreach (SPListItem listItem in myDiscussionList.Items)
{
    listItemToDelete = listItem;
}

// Code to delete a discussion reply
if (listItemToDelete != null)
{
    listItemToDelete.Delete();
}
        注意:直接在SharePoint列表上做任何操作之前都要允许unsafe updates。
currentRootWeb.AllowUnsafeUpdates = true;
        希望能够帮到你。
        你的支持是我不竭的动力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值