我正在从Active Directory将用户详细信息检索到SharePoint。
我想在我的公共覆盖void Execute(Guid targetInstanceId)方法中调用这两个以下函数,但我已经尝试了很多但仍然无法弄明白。
public static IList<LdapUser> GetUsersFromActiveDirectory(string connectionString)
{
some codes here
}
public void SaveActiveDirectoryUsersToSharePointList(IList<LdapUser> ldapUsers)
{
some codes here
}
我想进行函数调用,以便它可以显示从Active Directory到SharePoint List [LDAPUsers]的用户详细信息。
以下代码不正确。 它向我展示了SPListItem有一些无效的参数。 我理解发生了无效参数的问题,但是我无法想出任何其他方式来执行函数调用。或者我不应该在SPListItem中做到这一点?
public override void Execute(Guid targetInstanceId)
{
SPWebApplication webApp = this.Parent as SPWebApplication;
SPList taskList = webApp.Sites[0].RootWeb.Lists["LDAPUsers"];
SPListItem newTask = taskList.Items.Add(SaveActiveDirectoryUsersToSharePointList(GetUsersFromActiveDirectory(connectionString)));
newTask.Update();
}
答案 0 :(得分:0)
(不知道你在函数中实际做了什么,这在我认为无关紧要)你的代码试图将SPListItem对象设置为等于SPList对象,这是无法完成的。可以删除“SPListItem newTask =”并运行方法taskList.Items.Add(然后传入该项所需的任何参数)。
This MSDN文章提供了创建单个列表项的完整方法。
无论你的自定义函数在做什么,你都可以
1)将您的数据查询到某种列表或数组(就像您使用GetUsersFromActiveDirectory一样)
2)访问SP列表项集合/ SP列表(就像您对taskList所做的那样)
3)从步骤1循环遍历列表/数组, a)创建一个新的列表项 b)将列表/数组中的各个数据列映射到项的值(即newTask [“Title”] = TextBox2.Title) c)将列表项添加到列表集合/列表
4)将值添加/提交到列表(即通过.update()单独或作为一组)