2

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

另外我想知道是否可以使用工作流创建它,或者我是否可以使用工作流调用 webservice(c#)。

4

3 回答 3

0

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

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

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

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

于 2012-11-06T16:36:22.930 回答
0

好的,首先你必须在其中创建一个带有 Visual Studio 的共享点项目,你可以编写 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();
 }

只是为了让你开始,顺便说一句,如果你只使用共享点设计器,你就不能使用 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,从编程的角度来看,它的使用不太友好,如果这段代码在它上面不起作用,我认为它仍然接近它可以完成的方式,只需检查对象以及你用它做什么,它可能会略有不同.

于 2012-11-06T18:26:28.253 回答
-1

你确定要创建这么多网站吗?我不建议这样做,我的意思是想想你在 2 年后让自己从事的管理任务,这样的事情往往会变得疯狂。

我认为如果可能的话,您应该为所有项目考虑 1 个站点,但您仍然可以在积极的方面调整具有权利等的东西,人们会发现通常在 1 个站点中找到东西更容易。

好吧,只是我的几块钱,我不得不处理基于项目的静坐,我发现这是一场噩梦。但如果你喜欢我不会阻止你,但请确保你也想要..

于 2012-11-06T16:30:38.940 回答