在将新项目添加到列表后,如何基于模板创建新的共享点站点,例如,我有共享点站点“A”,其中包含有关项目的信息的列表,想法是在我添加一个新项目到该列表,我需要为该项目自动创建一个新的共享点站点(团队空间)。
另外我想知道是否可以使用工作流创建它,或者我是否可以使用工作流调用 webservice(c#)。
在将新项目添加到列表后,如何基于模板创建新的共享点站点,例如,我有共享点站点“A”,其中包含有关项目的信息的列表,想法是在我添加一个新项目到该列表,我需要为该项目自动创建一个新的共享点站点(团队空间)。
另外我想知道是否可以使用工作流创建它,或者我是否可以使用工作流调用 webservice(c#)。
你也许可以通过工作流来做到这一点,但我真的怀疑它,至少它不会特别容易。
我建议在列表中添加一个事件接收器,这是我在需要遵循此模型的几次情况下所做的,这对我来说非常成功。
您可以将 ItemCreated(或 ItemCreating,如果您愿意)处理程序附加到列表,以在将项目添加到列表时基于模板创建站点,并且它也是对新站点进行任何配置的选项(可能基于您刚刚创建的列表项中的值)。您可以通过功能装订来配置它,但我发现不太方便,特别是如果您需要查看新创建的项目的值。
如果编辑父列表上的项目需要影响子列表,您还可以处理 ItemUpdated(或更新)事件。如果删除它应该删除子站点,您还可以处理 ItemDeleted(或删除)。
好的,首先你必须在其中创建一个带有 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,从编程的角度来看,它的使用不太友好,如果这段代码在它上面不起作用,我认为它仍然接近它可以完成的方式,只需检查对象以及你用它做什么,它可能会略有不同.
你确定要创建这么多网站吗?我不建议这样做,我的意思是想想你在 2 年后让自己从事的管理任务,这样的事情往往会变得疯狂。
我认为如果可能的话,您应该为所有项目考虑 1 个站点,但您仍然可以在积极的方面调整具有权利等的东西,人们会发现通常在 1 个站点中找到东西更容易。
好吧,只是我的几块钱,我不得不处理基于项目的静坐,我发现这是一场噩梦。但如果你喜欢我不会阻止你,但请确保你也想要..