gpt4 book ai didi

c# - 从 SharePoint 字段选择列中检索所有项目

转载 作者:行者123 更新时间:2023-11-30 19:51:18 25 4
gpt4 key购买 nike

我正在使用 SharePoint 服务器,我正在尝试以编程方式将服务请求添加到 Microsoft 的调用中心应用程序模板。到目前为止,我已经取得了相当大的成功。我可以为特定客户添加调用并分配特定支持技术:

private enum FieldNames
{
[EnumExtension.Value("Service Request")]
ServiceRequest,
[EnumExtension.Value("Customer")]
Customer,
[EnumExtension.Value("Service Representative")]
ServiceRepresentative,
[EnumExtension.Value("Assigned To")]
AssignedTo,
[EnumExtension.Value("Software")]
Software,
[EnumExtension.Value("Category")]
Category
}
private void CreateServiceCall(string serviceCallTitle, string customerName, string serviceRep)
{
SPSite allSites = new SPSite(siteURL);
SPWeb site = allSites.AllWebs[siteName];
SPListItemCollection requestsList = site.Lists[serviceRequests].Items;
SPListItem item = requestsList.Add();

SPFieldLookup customerLookup = item.Fields[FieldNames.Customer.Value()] as SPFieldLookup;

item[FieldNames.ServiceRequest.Value()] = serviceCallTitle;

if (customerLookup != null)
{
using (SPWeb lookupWeb = allSites.OpenWeb(customerLookup.LookupWebId))
{
SPList lookupList = lookupWeb.Lists.GetList(new Guid(customerLookup.LookupList), false);
foreach (SPListItem listItem in lookupList.Items)
{
if (listItem[customerLookup.LookupField].ToString() != customerName) continue;

item[FieldNames.Customer.Value()] = new SPFieldLookupValue(listItem.ID, customerName);
break;
}
}
}
SPUserCollection userCollection = site.SiteUsers;
if (userCollection != null)
{
foreach (SPUser user in userCollection)
{
if (user.Name != serviceRep) continue;

item[FieldNames.AssignedTo.Value()] = user;
break;
}
}

item.Update();

site.Close();
allSites.Close();
}

我在默认列表中添加了两个自定义列(类别、软件):

alt text

我在 SharePoint 中填充了这两列,现在我想检索该数据,以便我可以在我发布的代码片段中使用它来为调用分配适当的类别/软件等。我无法在代码中获取列表,我尝试使用 item["Software"]site.Lists["Software"] 和几个其他的,但到目前为止我所想到的是 null

任何人都可以为此指出正确的方向吗?谢谢!

最佳答案

SPFieldMultiChoice 和相关字段有一个 Choices 属性:

SPFieldMultiChoice software = item.Fields[FieldNames.Software.Value()] as SPFieldMultiChoice;
StringCollection softwareChoices = software.Choices;

如果需要在字段上设置值,请使用 SPFieldMultiChoiceValue 类型:

SPFieldMultiChoiceValue values = new SPFieldMultiChoiceValue();
values.Add("Choice 1");
values.Add("Choice 2");
item[FieldNames.Software.Value()] = values;

关于c# - 从 SharePoint 字段选择列中检索所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1290410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com