gpt4 book ai didi

sharepoint - ListItem 值未在 ItemUpdated 上更新,仅在点击刷新后

转载 作者:行者123 更新时间:2023-12-04 18:21:22 26 4
gpt4 key购买 nike

我是 Sharepoint 的新手。
我有一个连接到 ItemUpdated 事件的 EventReceiver,我想在一个字段中写一个文本。
当我上传文件时,事件触发正常,它通过调试代码,似乎更新但我的属性没有收到它应该接收的文本。但是,在页面上点击刷新后,我可以看到更新的值。

这是我的代码

    public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemUpdated(properties);

string folderPath = string.Empty;
SPListItem item = properties.ListItem;
if (item.File.ParentFolder != null)
{
folderPath = item.File.ParentFolder.ServerRelativeUrl;
}

AssignPropertyToField("Folder Name", item, folderPath);
}

private void AssignPropertyToField(string fieldName, SPListItem item, string folderPath)
{
item[fieldName] = folderPath;

this.EventFiringEnabled = false;
item.SystemUpdate();
this.EventFiringEnabled = true;
}

提前感谢您的建议,

问候,

最佳答案

如果可能,请尝试 ItemUpdating而不是 ItemUpdated .

由于 ItemUpdated 是异步的,因此您不应指望在刷新页面之前调用它。使用 ItemUpdating,请注意列表项尚未保存,因此您无需调用 SystemUpdate .

public override void ItemUpdating(SPItemEventProperties properties)
{
string folderPath = string.Empty;
SPListItem item = properties.ListItem;
if (item.File.ParentFolder != null)
{
folderPath = item.File.ParentFolder.ServerRelativeUrl;
}
properties.AfterProperties["FolderNameInternalName"] = folderPath;
}

在您的情况下,问题将是您是否能够在 ItemUpdating 事件中检索更新的父文件夹信息。我上面的示例代码将采用以前存在的文件夹信息。如果将文件移动到其他文件夹,此代码将为您提供错误的 URL。

关于sharepoint - ListItem 值未在 ItemUpdated 上更新,仅在点击刷新后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10605144/

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