I really don’t even know where to begin. I was trying to do some stuff with a reportviewer in an ASP.Net web app, and the next time I ran my project, the AJAX accordion stopped expanding on a completely different page. I tried re-installing the AJAXControlToolkit using NuGet, but that didn’t help. The page shows the accordion panes collapsed, and clicking on them does not cause them to expand.
edit: Ok, so there was a Javascript error on the page, but not one that I know what to do with. The error is coming from scriptresource.axd. The error occurs on every page in my site, and it is:
Sys.ArgumentNullException: Sys.ArgumentNullException: Value cannot be null.
Parameter name: elements [http://localhost:54342/ScriptResource.axd?d=oLn_YfKUbuAZmIp8wPx_MGof0M_lenV-JW2kiI5YDekmr8rZkMCuAuKyOZO06cyZlzhzJQ4BbUMfJShMBgWgM8TnLZXjah8CDfymeaxo44H_TH5anoZTptNOkXlY-ZNjFoS3wUNWvcmBHzSSm5K9ww2&t=252a36c5:4869]
the function in which this error is being thrown:
$addHandler = $type.addHandler = function DomEvent$addHandler(elements, eventName, handler, autoRemove) {
/// <summary locid="M:J#Sys.UI.DomEvent.addHandler">A cross-browser way to add a DOM event handler to an element.</summary>
/// <param name="elements">The element or text node, or array of elements or text nodes, that exposes the event. You may also pass a DOM selector or array of DOM selectors.</param>
/// <param name="eventName" type="String">The name of the event. Do not include the 'on' prefix, for example, 'click' instead of 'onclick'.</param>
/// <param name="handler" type="Function">The event handler to add.</param>
/// <param name="autoRemove" type="Boolean" optional="true" mayBeNull="true">Whether the handler should be removed automatically when the element is disposed of, such as when an UpdatePanel refreshes, or Sys.Application.disposeElement is called.</param>
var e = Function._validateParams(arguments, [
{name: "elements"},
{name: "eventName", type: String},
{name: "handler", type: Function},
{name: "autoRemove", type: Boolean, mayBeNull: true, optional: true}
]);
if (e) throw e;
^^ happens here on the last line.
it seems like I’m probably missing something simple like… adding an ID to a control somewhere or something, but I’m really just guessing.
edit 2: I found the culprit. On the master page I had a User Control wherein I had a Modal Popup Extender that had some of its properties (OKButton, CancelButton, etc..) set to controls that didn’t exist.
Sorry about the vague question… It boils down to: What would cause an AJAX control to unexpectedly stop working?
and the answer as pointed out in the comments is that it usually comes from a javascript error.