The "Invalid postback or callback argument." exception in .NET can be caused by a slew of different reasons stemming from ASP.NET not being able to validate that a control event originated from the user interface that was rendered by that control. The most common solution offered as we all know is to set Page.EnableEventValidation = "False". Wrong! That's not a good idea from a security standpoint.
The better option is to determine what is causing the issue, and the bad news is debugging the code will not typically lead to the answer. You have to understand the code you have written and its relationship to this property to think about what you have done to cause this issue.
My most recent cause and solution? I made an update to a control outside the UpdatePanel housing a control that initiated the event, and redirected to another page from an ASP.NET menu after postback had completed. It immediately threw the "Invalid postback or callback argument" exception. The fix? Add the appropriate AsyncPostBackTrigger on the other UpdatePanel with the control being updated containing the event that is doing the updating. As soon as I did this, I was obeying all the good security rules and no need to set Page.EnableEventValidation = "False" which I never want to do as a lazy resort because I can't figure out what I did incorrectly.
Your writing is REALLY hard to understand. Seriously. Something like "I made an update to a control outside a control from which the update was done to the update panel with the control to the event." I have read your last paragraph four times and I still have no idea what you're saying.ReplyDelete
No you are correct. That is not my most stellar paragraph on this blog. The reason for the complexity is because it was a very specific use case and solution in regards to some sticky AJAX usage. In reality UpdatePanels themselves get VERY confusing when nested. It's difficult to speak to them without sounding jumbled.ReplyDelete