2012-11-06 51 views
2

如何在将新项目添加到列表之后基于模板创建新的SharePoint站点,例如我拥有共享点站点“A”,其中包含有关项目信息的列表,其想法是,在向该列表添加新项目之后,我需要为该项目自动创建一个新的SharePoint站点(团队空间)。如何在将新项目添加到列表之后基于模板创建新的SharePoint站点

另外我想知道是否有可能使用工作流创建此,或者如果我可以调用webservice(c#)与工作流。

回答

0

玉以及首先你必须创建在有视觉工作室 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(); 
} 

只是为了让你开始,顺便说一句,你cannt如果你只使用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等verry强大。所以你应该花时间在Visual Studio中弄清楚这一点。(c#是不是很难看,请花时间)

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

-1

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

我想你应该考虑1个网站,您的所有项目,如果可能的 你仍然可以用积极的一面权利等 调的东西,人们会发现它更容易内一般1个网站,找到的东西。

刚好我的几块钱,我不得不处理基于项目的坐,我发现它是一场噩梦。 但如果你喜欢我不会阻止你,但一定要你也想..

+0

我们在我们公司实际上有很多(也许是6+?)这样的网站。它通常被认为是一个相当合适的模型。通常这些子网站是“临时的”,变得过时,并且可能会在一段时间后被删除。当他们不能时,你是正确的,它开始占用大量的空间,这确实需要解决。另外,这不是真正的答案,这是一条评论。 – Servy

+0

它的评论,尽管你通常使用它,我不会建议这样一个aprouch,公司sharepoint的力量通常是共享信息,而不是隐藏在网站。 得到我的shaperpoint书回来tomorow,如果别人不回答我可能然后。 – user613326

+0

噢,我知道这不是最好的解决方案,我推荐你说的同样的解决方案(所有项目都有1个站点),但公司希望为每个项目创建一个新的站点(团队空间) m试图找到这个解决方案:( –

0

你也许能够做到这一点与工作流程,但我真的怀疑它,至少它不会特别简单。

我会建议在列表中添加一个事件接收器,这是我在几次需要遵循这个模型时所做的事情,并且它对我来说已经非常成功。

当一个项目被添加到列表中时,您可以附加一个ItemCreated(或ItemCreating,如果您愿意的话)处理程序到列表中以基于模板创建站点,并且它也是一个选项,用于执行新站点的任何配置(可能基于刚刚创建的列表项中的值)。您可以通过功能装订对其进行配置,但我发现不太方便,尤其是如果您需要查看新创建的项目的值。

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

相关问题