• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
胡思乱想的猫
象你一样自由
博客园    首页    新随笔    联系   管理    订阅  订阅
通过代码 操作 sharepoint 讨论版 (转)

1) Take instance of your site collection and web:

SPSite currentSite = SPContext.Current.Site;
SPWeb currentRootWeb = currentSite.RootWeb;

2) Suppose we have the name of discussion list - "MyDiscussionList".

Get GUID of this list:

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;

}

}

Tips:

a) list.ItemCount will return all discussions and their replies

b) list.Items.Count will return only replies

3) Get your list:

SPList myDiscussionList = currentRootWeb.Lists.GetList(myDiscussionListGUID, false);

4) Create a new Discussion:

SPListItem newItem = SPUtility.CreateNewDiscussion(myDiscussionList.Items, "New Message using code");
newItem["Body"] = "My new message content using code";
newItem.Update();

5) How to read all discussions:

foreach (SPListItem folder in myDiscussionList.Folders)
{
Response.Write("Folder Name: " + folder.Name + "<BR>");
Response.Write("Folder ID: " + folder.ID + "<BR>");
Response.Write("Attachments Count: " + folder.Attachments.Count + "<BR>"); // 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 + "<BR>");
}

// Read body of attachment

Response.Write("Body: " + folder.Fields["Body"].GetFieldValueAsText(folder["Body"]) + "<BR>");
}

6) If you want to delete a discussion:

SPListItem listItemParentToDelete = null;

foreach (SPListItem folder in myDiscussionList.Folders)
{
listItemParentToDelete = folder;

}

if (listItemParentToDelete != null)
{
listItemParentToDelete.Delete();
}


7) Loop through all discussion replies:

foreach (SPListItem listItem in myDiscussionList.Items)

{

Response.Write("Item DisplayName: " + listItem.DisplayName + "<BR>"); // Returns Title of Discussion
Response.Write("List ID: " + listItem.ID + "<BR>");
Response.Write("List Folder ID: " + listItem.Fields["Parent Folder Id"].GetFieldValueAsText(listItem["Parent Folder Id"]).ToString() + "<BR>"); // Returns ID of Parent Discussion
Response.Write("Body: " + listItem.Fields["Body"].GetFieldValueAsText(listItem["Body"]) + "<BR>");

// 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 + "<BR>");

// Code to Reply to a Discussion Message
SPListItem reply = SPUtility.CreateNewDiscussionReply(parentListItem);
reply["Body"] = "<div class=ExternalClass89C47CD7892B4279A8F42A65DD63AE3A><div> </div> <div>Reply to the new message<br><br> <hr> <b>From: </b>Admin<br><b>Posted: </b>Friday, July 20, 2007 4:01 AM<br><b>Subject: </b>New message<br><br> <div class=ExternalClass3D04672E599B486F9ECB76C138494708> <div>My new message content</div></div></div></div>";
reply["TrimmedBody"] = "<div class=ExternalClass677134B4EA284660B1B236824800345C><div> </div> <div>Reply to the new message<br></div></div>";
reply.Update();


// Code to delete a discussion reply
listItemToDelete = listItem;

}


8) Code to delete a discussion reply:

SPListItem listItemToDelete = null;

foreach (SPListItem listItem in myDiscussionList.Items)

{

listItemToDelete = listItem;

}

// Code to delete a discussion reply
if (listItemToDelete != null)
{
listItemToDelete.Delete();
}

Note: You need to allow unsafe updates in order to do any operation on SharePoint list directly.

currentRootWeb.AllowUnsafeUpdates = true;

 

 

 

原帖地址:http://www.beyondweblogs.com/post/SharePoint-Discussion-Board-Common-Operations-through-Code.aspx

posted on 2010-01-20 17:21  heli猫  阅读(734)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3