Why did my AJAX Accordion control stop working?

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.

Need Your Help

Unable to pass datatable as table variable to a stored procedure

.net sql-server-2008 c#-4.0 stored-procedures datatable

I am passing values from a list to a datatable and then passing the datatable to a stored procedure as a table variable . For some reason ,the values are not getting passed correctly in the Table

How to test smtp email with DOS, not telnet?

windows testing smtp dos

I know how to test smtp email using telnet. But I think because telnet uses "its own channel" to reach smtp server, it doesn't necessarily mean the normal smtp communication on port 25 would work.