我在自定义列表中创建了标准 SharePoint 2013 事件接收器。
观看的事件 =“添加项目”。
稍后在我的代码中,我需要按照用户插入它们的顺序检索列表项的附件。但不幸的是,SharePoint 默认情况下似乎不这样做。
示例:
用户创建一个列表项并附加以下文件
图片_front.jpg
图片_back.png
图片_231.jpg
现在在我的事件接收器中,我可能首先得到“Picture_back”然后是“Picture_front”......或以任何其他顺序。
如何以与附加到列表项相同的顺序检索附件?我尝试使用SPFile 属性'TimeCreated',但这也不起作用......他们得到了相同的时间戳:((如果我使用的是'Ticks')
有什么想法还是我做错了什么?
这是我的代码:
public override void ItemAdded(SPItemEventProperties properties)
{
SPAttachmentCollection attachments = properties.ListItem.Attachments;
if (attachments.Count > 0)
{
int p = 1;
Dictionary<string, string> attachementDict = new Dictionary<string, string>();
try
{
foreach (string attachement in attachments)
{
SPFile attachementFile = properties.ListItem.ParentList.ParentWeb.GetFile(properties.ListItem.Attachments.UrlPrefix + attachement);
string imageUrlPath = properties.WebUrl + attachementFile.ServerRelativeUrl;
string imageTimestamp = attachementFile.TimeCreated.Ticks.ToString();
// This Dict is used lator for sorting
// but at the Moment I get here the error that the same key already exists because of the same timestamp of the files :(
attachementDict.Add(imageTimestamp, imageUrlPath);
}
}
catch (Exception ex)
{
// SPLog
}
}