我无法从 SharePoint 代码隐藏中另一个列表的查找字段中的列表访问计算字段的值。
页面上的 ListFieldIterator 向用户显示大量选项。我需要对用户所做的某些特定选择执行一些后端验证。
我有一个名为“事件类型”的列表,用户可以从中选择播放、性能、显示等。这个列表有 4 列 - 描述、启用、默认和过滤。Filtered 是一个计算列,它是根据在其他列上选择的选项生成的。
列表事件有一个列,它是对该列表的查找,并显示过滤的列。
现在在页面上,这一切都很好。选项显示给用户,他们可以进行选择。在添加计算字段之前,我可以通过执行以下操作访问所做的选择
SPFieldLookup eventTypeField = ListFieldIterator.Item.Fields.GetField("Event_x0020_Type") as SPFieldLookup;
if (eventTypeField.GetFieldValueAsText(ListFieldIterator.Item["Event_x0020_Type"]) == "Performance")
{
// some other logic
errorMessages.Add("There is an error here");
}
但是,现在当以这种方式访问该字段时,我只会得到一个空字符串。
如果我尝试使用
string value = eventFields.Item["Event_x0020_Type_x0020_1"].ToString();
然后我返回“8”,这是我选择的项目列表中的位置。(它会根据我选择的列表中的项目而变化)
这篇文章获取计算字段的值似乎相关,但我看不到从查找字段中获取计算字段的明显方法。
任何建议表示赞赏