This is an interesting exception that you might get when dealing with Ajax; more specifically, when trying to assign an EventName to a trigger. The situation might look something like this in your .aspx code:
<atlas:UpdatePanel runat="Server" ID="MainBody">
<Triggers>
<atlas:ControlEventTrigger ControlID="LinkButton1" EventName="OnClick" />
</Triggers>
<ContentTemplate>
<%=System.DateTime.Now().ToString()%>
</ContentTemplate>
</atlas:UpdatePanel>
What this block of xml script is telling the Atlas server framework to do is find the server control "LinkButton1" in the control tree and handle it's event "OnClick". It does this by telling the <ScriptManager> to first swallow any submit events for this client control (so that the form doesn't do a full postback) and then send back an asynchronous form post instead (basically intercepting the full postback and turning it into a partial postback). The stack trace for the exception is raised from within the Initialize() method of the Microsoft.Web.Atlas.ControlEventTrigger type:
protected internal override void Initialize(Control ownerControl)
{
....
EventInfo info1 = null;
string text1 = this.EventName;
if (text1.Length != 0)
{
info1 = control1.GetType().GetEvent(text1);
}
if (info1 == null)
{
throw new InvalidOperationException("The EventName must be set to a valid event name on the associated control.");
}
...
}
Note that it does a control1.GetType().GetEvent() on the data type of the control you're hooking the event on. So...go back and look at your control. As the exception suggests, you're hooking an event on the control that doesn't exist. The confusing part, however, is that you may think that it's hooking CLIENT events, but it's not...the ScriptManager is snagging the client events that cause a postback on this client control, doing a parital postback for it, and then updating the region of the UpdatePanel based on the response from that partial postback. The UpdatePanel, itself, isn't actually doing the postback (in other words, it's the ScriptManager control doing the partial postback, not the UpdatePanel).
....in the case of the XML Script above, to fix it you simply replace "OnClick" (the clientside eventname) with "Click" (the server side eventname).