在将新项添加到List后,如何基于模板创建新的sharepoint站点

时间:2012-11-06 16:10:49

标签: c# sharepoint-2007 workflow sharepoint-designer

如何在将新项目添加到列表后基于模板创建新的sharepoint站点,例如,我有sharepoint站点“A”,其中包含一个包含项目信息的列表,并且想法是我在该列表中添加了一个新项目,我需要为该项目自动创建一个新的sharepoint站点(teamspace)。

此外,我想知道是否可以使用工作流程创建此工具,或者我是否可以使用工作流程调用Web服务(c#)。

3 个答案:

答案 0 :(得分:0)

你可以用工作流做到这一点,但我真的很怀疑它,至少它不会特别容易。

我建议在列表中添加一个事件接收器,这是我在需要遵循这个模型的几个场合所做的,而且对我来说非常成功。

当项目添加到列表时,您可以将ItemCreated(或ItemCreating,如果您愿意)处理程序附加到列表以基于模板创建站点,并且它还可以选择对新站点进行任何配置(可能基于您刚刚创建的列表项中的值)。您可以通过功能装订来配置它,但我觉得不太方便,特别是如果您需要查看新创建的项目的值。

如果编辑父列表中的项目需要影响子列表,您还可以处理ItemUpdated(或更新)事件。您还可以处理ItemDeleted(或删除),如果删除它应删除子网站。

答案 1 :(得分:0)

好的,首先你必须使用visual studio创建一个sharepoint项目 在那里你可以写c#

在c#

中创建网站
 SPSite topLevelSite = new SPSite("http://localhost");
 SPWeb spWebInstance = topLevelSite.OpenWeb();
 String siteTemplate = spWebInstance.WebTemplate;
 try
 {
SharePointWebInstance.Webs.Add("the name", "name", "new site added",    (UInt32)System.Globalization.CultureInfo.CurrentCulture.LCID, siteTemplate, false, false);
  }
 catch(Exception ex)
 {
  //...
 }
 finally
 {
 topLevelSite.Close();
 SharePointWebInstance.Dispose();
 }

只是为了让你开始,如果你只使用sharepoint设计师你就不能使用c#,c#就是使用visual studio。

从列表中检索某些内容

using Microsoft.SharePoint;  


class SPTest {  

public void ReadList() {  

// Use using to make sure resources are released properly  
using(SPSite oSite = new SPSite(pathToSite)) {  
using(SPWeb oWeb = oSite.AllWebs[nameOfWeb]) {   
  // Alternately you can use oSite.RootWeb if you want to access the main site  

  SPList oList = oWeb.Lists[listName];  // The display name, ie. "Calendar"  

  foreach(SPListItem oItem in oList.Items) {  
    // Access each item in the list...  
    DateTime startTime = (DateTime)oItem["Start Time"];  
    // etc....  
  }  

  }  
  }  
  }  
  } 

只是为了让你入门,我会建议youtube看看如何同时使用sharepoint和visual studio,或者更好地关注微软官方课程10175A(我做过) 上面的代码来自互联网,而不是来自书本。

我认为不可能使用普通的工作流程,或者使用javascript来实现这一点,尽管有一些Java代码是非常强大的ajax等等所以你应该花时间在visual studio中搞清楚这一点。 (c#并不难读,花点时间)

哦,我看到你使用2007,从编程的角度看它不太友好,如果这个代码不起作用我认为它仍然可以完成它的方式,只需检查对象和你用它做什么,它可能会略有不同。

答案 2 :(得分:-1)

你确定要创建这么多网站吗? 它不是我推荐的东西,我的意思是想想你在2年后进入的管理任务,这样的事情往往会变得疯狂。

我认为如果可能的话,您应该为所有项目考虑1个站点 你仍然可以用权利等来调整事物 从积极的方面来说,人们会发现在一般的网站内找到更容易的东西。

只是我的几块钱,我不得不处理基于项目的坐着,我觉得这是一场噩梦。 但如果你喜欢我不会阻止你,但你也要确定你也想要...

相关问题