Each test involved adding a new item, editing the item and then deleting the item.Here are the results for a list: No value means that column value in the hash table was not available.For example, you can hook into the Item Updating event for a document library and prevent a user from changing a certain column.The code might look like this: When they say “not available for post events on list items”, do they mean after events (like Item Updated, Item Deleted, etc)?I've bound and Item Updating event to a document library of a MOSS publishing site, I’m then trying to compare the Before and After properties. I'm sure this is probably a subset so make sure you test.When I amend the field in the UI I expect the two values to be different, however they are always the same - by that I mean the original value. That's what I found confusing, I was using that page when developing and the table states the After Properties value for Item Updating is the ' Changed Value' yet my code always has the Original Value, have I missed something? Do you absolutely need to do something Asynchronous? If so, indeed the best way to do it is to add a hidden bit column, or an int column if you want to cheaply store changed flags for several columns.
New value means that the correct value for the column was available.
object will be used for both the updating and updated events, and that instance won't be reused in the context of a separate update. To String() since it converts nulls to empty strings. At that point you will not have Before Properties to compare to.
Note: - The list I am attaching this to does NOT have version history turned on.
There is a difference between the behaviour of Before and After properties when dealing with document libraries versus when dealing with lists.
For documents, Before and After properties are guaranteed for post events, such as Item Updated, but Before properties are not available for post events on list items.