So I finally got around to putting together an example that demonstrates the problem.
Basically, I have an AjaxEvent on the "Save" button that triggers an UpdatePanel to refresh, but the Coolite ScriptManager init is being included in the UpdatePanel response, so the next time the "Show Dialog" button is clicked, it's firing the AjaxEvent twice, then 3x, 4x, etc.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void btnShow_Click(object sender, AjaxEventArgs e)
{
this.dlgTest.Show();
}
protected void btnSave_Click(object sender, AjaxEventArgs e)
{
this.dlgTest.Hide();
}
protected void btnUpdateStatus_Click(object sender, EventArgs e)
{
lblStatus.Text += string.Format("<br />Save button clicked: {0}", DateTime.Now);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Button ID="btnShow" runat="server" Text="Show Dialog" />
<p>Status:</p>
<asp:UpdatePanel ID="upReports" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btnUpdateStatus" runat="server" style="display:none;" onclick="btnUpdateStatus_Click" />
<asp:Label ID="lblStatus" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<ext:ScriptManager ID="extScriptMgr" runat="server" CleanResourceUrl="true" StateProvider="PostBack">
<CustomAjaxEvents>
<ext:AjaxEvent Target="btnShow" OnEvent="btnShow_Click" Success="alert('return from btnShow AjaxEvent');">
<EventMask Target="This" MinDelay="500" />
</ext:AjaxEvent>
</CustomAjaxEvents>
</ext:ScriptManager>
<ext:Window ID="dlgTest" runat="server" Showonload="false" CloseAction="Hide" Width="300" Height="200">
<Content>
Every time the Save button is clicked, notice the window alert is fired an extra time when you click on Show Dialog.
</Content>
<Buttons>
<ext:Button ID="btnSave" runat="server" Text="Save">
<AjaxEvents>
<Click OnEvent="btnSave_Click" Success="#{btnUpdateStatus}.dom.click();">
<EventMask Target="Parent" Msg="Saving..." MinDelay="500" />
</Click>
</AjaxEvents>
</ext:Button>
<ext:Button ID="btnCancel" runat="server" Text="Cancel">
<Listeners>
<Click Handler="#{dlgTest}.hide();" />
</Listeners>
</ext:Button>
</Buttons>
</ext:Window>
</form>
</body>
</html>