Beobachtetes Ereignis = „ItemAdded“.
Später in meinem Code muss ich die Anhänge des Listenelements in derselben Reihenfolge abrufen, in der der Benutzer sie eingefügt hat. Aber leider scheint SharePoint dies nicht standardmäßig zu tun.
Beispiel:
Der Benutzer erstellt ein Listenelement und hängt die folgenden Dateien an
Picture_front.jpg
Picture_back.png
Picture_231.jpg
Jetzt ist es in meinem Event Receiver möglich, dass ich zuerst „Picture_back“ und dann „Picture_front“ erhalte ... oder in einer anderen Reihenfolge.
Wie kann ich die Anhänge in der gleichen Reihenfolge abrufen, in der sie an das Listenelement angehängt wurden?
Ich habe versucht, die SPFile-Eigenschaft „TimeCreated“ zu verwenden, aber das funktioniert auch nicht ... Sie haben den gleichen Zeitstempel
Irgendwelche Ideen oder mache ich etwas falsch?
Hier ist mein Code:
Code: Select all
public override void ItemAdded(SPItemEventProperties properties)
{
SPAttachmentCollection attachments = properties.ListItem.Attachments;
if (attachments.Count > 0)
{
int p = 1;
Dictionary attachementDict = new Dictionary();
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
}
}
Mobile version