C# 如何在将新项目添加到列表后基于模板创建新的sharepoint网站

C# 如何在将新项目添加到列表后基于模板创建新的sharepoint网站,c#,sharepoint-2007,workflow,sharepoint-designer,C#,Sharepoint 2007,Workflow,Sharepoint Designer,如何在将新项目添加到列表后基于模板创建新的sharepoint网站,例如,我在sharepoint网站a上有一个包含项目信息的列表,其想法是,在将新项目添加到该列表后,我需要为该项目自动创建新的sharepoint网站团队空间 另外,我想知道是否可以使用工作流创建此网站,或者是否可以使用工作流调用WebService。您确定要创建这么多网站吗? 这不是我的建议,我的意思是,想想你在两年后从事的管理工作,这些事情往往会变得疯狂 我认为如果可能的话,你应该考虑所有项目的1个站点。 你仍然可以用权利等

如何在将新项目添加到列表后基于模板创建新的sharepoint网站,例如,我在sharepoint网站a上有一个包含项目信息的列表,其想法是,在将新项目添加到该列表后,我需要为该项目自动创建新的sharepoint网站团队空间


另外,我想知道是否可以使用工作流创建此网站,或者是否可以使用工作流调用WebService。

您确定要创建这么多网站吗? 这不是我的建议,我的意思是,想想你在两年后从事的管理工作,这些事情往往会变得疯狂

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

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

你确定要创建这么多网站吗? 这不是我的建议,我的意思是,想想你在两年后从事的管理工作,这些事情往往会变得疯狂

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

嗯,就我的几块钱,我不得不处理基于项目的静坐,我发现这是一场噩梦。
但是,如果你愿意,我不会阻止你,但请确保你也这么想。

你可以用工作流来完成这项工作,但我真的很怀疑,至少这不会特别容易

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

如果在列表中添加项目时希望使用列表处理程序基于模板创建站点,则可以附加ItemCreated或ItemCreating,这也是一个选项,可以根据刚刚创建的列表项目中的值对新站点进行任何配置。您可以通过特性绑定来配置它,但我发现这不太方便,特别是当您需要查看新创建项的值时


如果编辑父列表上的项目需要影响子列表,则还可以处理ItemUpdated或Update事件。您还可以处理ItemDeleted或delete,如果删除它会删除子网站。

您可以使用工作流来执行此操作,但我确实怀疑这一点,至少这不会特别容易

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

如果在列表中添加项目时希望使用列表处理程序基于模板创建站点,则可以附加ItemCreated或ItemCreating,这也是一个选项,可以根据刚刚创建的列表项目中的值对新站点进行任何配置。您可以通过特性绑定来配置它,但我发现这不太方便,特别是当您需要查看新创建项的值时


如果编辑父列表上的项目需要影响子列表,则还可以处理ItemUpdated或Update事件。您还可以处理ItemDeleted或delete,如果删除它会删除子网站。

好的,首先您必须使用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 designer,就不能使用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,或者更好地学习我学习的Microsoft Official课程10175A 上面的代码来自互联网,而不是书本

我不认为用普通的工作流或javascript就可以做到这一点,尽管一些java代码在ajax等方面非常强大,所以您应该花时间在visualstudio中解决这个问题。c并不难读,慢慢来


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

好的,首先你必须用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 designer,就不能使用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,或者更好地学习我所学的Microsoft Official课程10175A 上面的代码来自互联网,而不是书本

我不认为用普通的工作流或javascript就可以做到这一点,尽管一些java代码在ajax等方面非常强大,所以您应该花时间在visualstudio中解决这个问题。c并不难读,慢慢来


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

我们实际上有很多可能是6+?像我们公司这样的网站。人们普遍认为这是一个相当合适的模型。子网站通常是临时的、过时的,并且可以在一段时间后删除。如果他们不能,你是对的,它确实开始占用很多空间,这确实需要解决。而且,这并不是问题的真正答案;这是一条评论。这是一条评论,我不会建议这样一条评论尽管你通常使用它,sharepoint对一家公司的作用通常是共享信息,而不是隐藏在网站中。我的shaperpoint手册明天就拿回来了,如果其他人不回答,我可能会。哦,是的,我知道这不是最好的解决方案,我建议所有项目都使用与你说的相同的解决方案1 site,但公司希望这样做,为每个项目创建一个新的siteteamspace,所以我试图找到一个解决办法:@user613326这是一个非常合适的评论,只是不是一个答案。答案应该回答这个问题;如果你只是想说,那不是一个好主意,不说明应该如何做,然后发表评论,而不是回答。好吧,我是一个新手,有时我会混淆这里的按钮:查看我的最新答案哦,对于2007年不,除非你使用visual studio创建工作流,否则你不能在工作流中这样做。这些功能更强大。我们实际上有很多可能是6+?像我们公司这样的网站。人们普遍认为这是一个相当合适的模型。子网站通常是临时的、过时的,并且可以在一段时间后删除。如果他们不能,你是对的,它确实开始占用很多空间,这确实需要解决。而且,这并不是问题的真正答案;这是一条评论。这是一条评论,我不会建议这样一条评论尽管你通常使用它,sharepoint对一家公司的作用通常是共享信息,而不是隐藏在网站中。我的shaperpoint手册明天就拿回来了,如果其他人不回答,我可能会。哦,是的,我知道这不是最好的解决方案,我建议所有项目都使用与你说的相同的解决方案1 site,但公司希望这样做,为每个项目创建一个新的siteteamspace,所以我试图找到一个解决办法:@user613326这是一个非常合适的评论,只是不是一个答案。答案应该回答这个问题;如果你只是想说,那不是一个好主意,不说明应该如何做,然后发表评论,而不是回答。好吧,我是一个新手,有时我会混淆这里的按钮:查看我的最新答案哦,对于2007年不,除非你使用visual studio创建工作流,否则你不能在工作流中这样做。这些都是更强大的。