Visual studio 我可以使用Visual Studio在SharePoint中循环列表吗?
(使用SharePoint 2010) 嗨,伙计们,我会尽力提供足够的背景来让这一切变得有意义 基本上我们有一个客户名单,上面有他们的电话号码和其他信息。此列表按过期日期排序。我们有电话销售人员给名单上的客户打电话。到目前为止,我们只有一个电话销售员给名单上的客户打电话,这没有问题。不过,现在我们希望名单中有两个tm的呼叫客户,将来可能还会有更多。当然,问题是我们不希望他们在同一时间给同一个客户打电话 我们可以通过将tm分配给列表中的每个客户来解决这个问题,然后他们只看到分配给他们的客户。但由于我们希望按特定顺序调用它们,因此我们也希望按顺序分配tm,例如: 假设我们有3个tm的电话。理想情况下,列表如下所示(TM1、2和3是分配给该客户的tm):Visual studio 我可以使用Visual Studio在SharePoint中循环列表吗?,visual-studio,sharepoint,loops,sharepoint-2010,workflow,Visual Studio,Sharepoint,Loops,Sharepoint 2010,Workflow,(使用SharePoint 2010) 嗨,伙计们,我会尽力提供足够的背景来让这一切变得有意义 基本上我们有一个客户名单,上面有他们的电话号码和其他信息。此列表按过期日期排序。我们有电话销售人员给名单上的客户打电话。到目前为止,我们只有一个电话销售员给名单上的客户打电话,这没有问题。不过,现在我们希望名单中有两个tm的呼叫客户,将来可能还会有更多。当然,问题是我们不希望他们在同一时间给同一个客户打电话 我们可以通过将tm分配给列表中的每个客户来解决这个问题,然后他们只看到分配给他们的客户。但由于
- 客户1-TM1
- 客户2-TM2
- 客户3-TM3
- 客户4-TM1
- 客户5-TM2
- 客户6-TM3
- 客户7-TM1
- 客户8-TM2 ... 等等
如果你能想出更好的方法,我也愿意接受其他的想法。提前谢谢 您完全可以循环浏览列表中的项目。下面是一个可以实现此目的的方法的示例:
string[] tms = new string[] { "TM1", "TM2", "TM3" };
SPList list = SPContext.Current.Web.Lists["My List"];
SPListItemCollection items = list.Items;
for (int i = 0; i < items.Count; i++)
{
SPListItem item = items[i];
item["AssignedTM"] = tms[i % tms.Length];
item.Update();
}
string[]tms=新字符串[]{“TM1”、“TM2”、“TM3”};
SPList list=SPContext.Current.Web.Lists[“我的列表”];
SPListItemCollection items=list.items;
对于(int i=0;i
剩下的唯一问题是如何执行此代码。您可以将其放在控制台应用程序中并在服务器上运行(不推荐),也可以将其放在Web部件中,粘贴在页面上,授予管理员对该页面的访问权(可能带有附带的表单),并让(他/她)每天(或当数据更改时)执行该操作。您完全可以循环列表中的项目。下面是一个可以实现此目的的方法的示例:
string[] tms = new string[] { "TM1", "TM2", "TM3" };
SPList list = SPContext.Current.Web.Lists["My List"];
SPListItemCollection items = list.Items;
for (int i = 0; i < items.Count; i++)
{
SPListItem item = items[i];
item["AssignedTM"] = tms[i % tms.Length];
item.Update();
}
string[]tms=新字符串[]{“TM1”、“TM2”、“TM3”};
SPList list=SPContext.Current.Web.Lists[“我的列表”];
SPListItemCollection items=list.items;
对于(int i=0;i
剩下的唯一问题是如何执行此代码。您可以将其放入控制台应用程序并在服务器上运行(不推荐),也可以将其放入Web部件中,粘贴在页面上,授予管理员对页面的访问权限(可能带有附带的表单),并让(他/她)每天(或当数据更改时)执行它。真棒的负鼠,凯尔!我对SharePoint开发完全是新手,我还没有为SharePoint编写过一行代码。我喜欢你的想法,将这种代码添加到只有管理员才能访问的web部件中,这将非常有效!visual studio是否有内置模块来为SP构建web部件?如果是这样的话,你有什么可以推荐的资源吗?还是干脆把VisualStudio烧了试试?非常感谢!您熟悉在ASP.NET中创建用户控件吗?如果是这样,您就知道构建Web部件所需的一切。在Visual Studio中创建新的Visual Web部件。更多信息请参见此处:已经有一段时间了,但我想我可以解决它,谢谢链接!最后一个想法是,我在想,是否有可能对一个连接到列表的Web部件进行编码,该列表经过筛选,仅显示未分配给任何人的呼叫,然后仅获取该列表上的第一项并将其分配给当前用户?这样,呼叫者只需进入一个包含该web部件的页面,它就会抓取在调用列表中找到的第一个项目,并将其分配给当前呼叫者。这样,就不会有两个呼叫者获得相同的客户记录,也就不需要每天分配所有的记录了。您可以使用CAML查询()、Linq to SharePoint()或Linq to Objects(在
SPList.items
上调用.Cast()
来筛选列表项。注意:这可能会导致性能问题,特别是在非常大的列表上)。如果您对筛选列表项有更具体的问题,请问另一个问题。真棒的负鼠,Kyle!我对SharePoint开发完全是新手,我还没有为SharePoint编写过一行代码。我喜欢你的想法,将这种代码添加到只有管理员才能访问的web部件中,这将非常有效!visual studio是否有内置模块来为SP构建web部件?如果是这样的话,你有什么可以推荐的资源吗?还是干脆把VisualStudio烧了试试?非常感谢!您熟悉在ASP.NET中创建用户控件吗?如果是这样,您就知道构建Web部件所需的一切。在Visual Studio中创建新的Visual Web部件。更多信息请参见此处:已经有一段时间了,但我想我可以解决它,谢谢链接!最后一个想法是,我在想,是否有可能编写一个连接到一个列表的Web部件,该列表只过滤到sho