Hi!
I've an asp.net 3.5 application which uses the latest ajax control toolkit available for 3.5 (December 2013). The application works fine but I sometimes get an exception with a listsearch extender one page. Other pages also use listsearch extenders without any problems. But the page causing the Problem isn't very complex - just an update Panel which includes a Details view which inserts a record into a database:
<asp:UpdatePanel ID="UpdatePanelTicket" runat="server"><ContentTemplate><asp:DetailsView ID="DetailsViewTicket" runat="server" AutoGenerateRows="False" CellPadding="5" DataKeyNames="Oid" DataSourceID="TicketsDS" DefaultMode="Insert" GridLines="None" Height="50px" Width="300px"><FieldHeaderStyle Font-Bold="True" /><Fields><asp:TemplateField meta:resourcekey="tfProject"><InsertItemTemplate><asp:DropDownList ID="DropDownListProject" runat="server" AutoPostBack="True" DataSourceID="ProjectsDS" DataTextField="Name" DataValueField="Oid" OnSelectedIndexChanged="DropDownListProject_SelectedIndexChanged" OnLoad="DropDownListProject_Load" AppendDataBoundItems="true"></asp:DropDownList><ajaxToolkit:ListSearchExtender ID="ListSearchExtenderProjects" runat="server" TargetControlID="DropDownListProject" PromptCssClass="ListSearchExtenderPrompt" PromptText='<%$ Resources:GlobalResource, ListSearchExtender.PromptText%>' QueryPattern="Contains" IsSorted="true" QueryTimeout="2000"></ajaxToolkit:ListSearchExtender><asp:ObjectDataSource ID="ProjectsDS" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetUserProjects" TypeName="AreaService" OnSelecting="ProjectsDS_Selecting"><SelectParameters><asp:Parameter Name="pUser" Type="Decimal" /></SelectParameters></asp:ObjectDataSource><asp:RequiredFieldValidator ID="reqValPrj" runat="server" ControlToValidate="DropDownListProject" InitialValue="-1" meta:resourcekey="reqValPrj" Display="None" /><ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtenderPrj" runat="server" TargetControlID="reqValPrj" /></InsertItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfTitle" SortExpression="Title"><InsertItemTemplate><asp:TextBox ID="TextBoxTitle" runat="server" MaxLength="100" Width="450px" Text='<%# Bind("Title") %>' onkeypress="HideStatusMessage();"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidatorTitle" runat="server" ControlToValidate="TextBoxTitle" Display="None" meta:resourcekey="RequiredFieldValidatorTitle" /><ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="RequiredFieldValidatorTitle" /></InsertItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfVersion" SortExpression="VersionOid"><InsertItemTemplate><asp:DropDownList ID="DropDownListVersion" runat="server" DataSourceID="VersionsDS" DataTextField="Name" DataValueField="Oid" OnLoad="DropDownListVersion_Load" OnSelectedIndexChanged="DropDownListVersion_SelectedIndexChanged"></asp:DropDownList><ajaxToolkit:ListSearchExtender ID="ListSearchExtenderVersions" runat="server" TargetControlID="DropDownListVersion" PromptCssClass="ListSearchExtenderPrompt" PromptText='<%$ Resources:GlobalResource, ListSearchExtender.PromptText%>' QueryPattern="Contains" IsSorted="true" QueryTimeout="2000"></ajaxToolkit:ListSearchExtender><asp:ObjectDataSource ID="VersionsDS" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetProjectVersions" TypeName="AreaService" FilterExpression="Available='X'"><SelectParameters><asp:ControlParameter ControlID="DropDownListProject" Name="projectOid" PropertyName="SelectedValue" Type="Decimal" /></SelectParameters></asp:ObjectDataSource><asp:RequiredFieldValidator ID="RequiredFieldValidatorVersion" runat="server" ControlToValidate="DropDownListVersion" Display="None" meta:resourcekey="RequiredFieldValidatorVersion" /><ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtenderVersion" runat="server" TargetControlID="RequiredFieldValidatorVersion" /></InsertItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfComponent" SortExpression="ComponentOid"><InsertItemTemplate><asp:DropDownList ID="DropDownListComponent" runat="server" DataSourceID="ComponentsDS" DataTextField="Name" DataValueField="Oid" OnLoad="DropDownListComponent_Load" OnSelectedIndexChanged="DropDownListComponent_SelectedIndexChanged"></asp:DropDownList><ajaxToolkit:ListSearchExtender ID="ListSearchExtenderComponent" runat="server" TargetControlID="DropDownListComponent" PromptCssClass="ListSearchExtenderPrompt" PromptText='<%$ Resources:GlobalResource, ListSearchExtender.PromptText%>' QueryPattern="Contains" IsSorted="true" QueryTimeout="2000"></ajaxToolkit:ListSearchExtender><asp:ObjectDataSource ID="ComponentsDS" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetProjectComponents" TypeName="AreaService" FilterExpression="Available='X'"><SelectParameters><asp:ControlParameter ControlID="DropDownListProject" Name="projectOid" PropertyName="SelectedValue" Type="Decimal" /></SelectParameters></asp:ObjectDataSource><asp:RequiredFieldValidator ID="RequiredFieldValidatorComp" runat="server" ControlToValidate="DropDownListComponent" Display="None" meta:resourcekey="RequiredFieldValidatorComp" /><ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtenderComp" runat="server" TargetControlID="RequiredFieldValidatorComp" /></InsertItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfCreator"><InsertItemTemplate><asp:DropDownList ID="DropDownListCreator" runat="server" DataSourceID="ObjectDataSourceCreator" DataTextField="Name" DataValueField="Oid" Enabled='<%# CurrentUserDevOrAdmin() %>' OnDataBound="DropDownListErsteller_DataBound" OnSelectedIndexChanged="DropDownListErsteller_SelectedIndexChanged" /><ajaxToolkit:ListSearchExtender ID="ListSearchExtenderCreator" runat="server" TargetControlID="DropDownListCreator" PromptCssClass="ListSearchExtenderPrompt" PromptText='<%$ Resources:GlobalResource, ListSearchExtender.PromptText%>' QueryPattern="Contains" IsSorted="true" QueryTimeout="2000"></ajaxToolkit:ListSearchExtender><asp:ObjectDataSource ID="ObjectDataSourceCreator" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetProjectPersons" TypeName="PersonService" EnableCaching="true" CacheDuration="3600" CacheKeyDependency="cCreatorList"></asp:ObjectDataSource></InsertItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfType" SortExpression="TypeId"><InsertItemTemplate><asp:DropDownList ID="DropDownListTickettype" runat="server" DataSourceID="TickettypesDS" DataTextField="Name" DataValueField="Id" SelectedValue='<%# Bind("TypeId") %>'></asp:DropDownList><ajaxToolkit:ListSearchExtender ID="ListSearchExtenderTickettype" runat="server" TargetControlID="DropDownListTickettype" PromptCssClass="ListSearchExtenderPrompt" PromptText='<%$ Resources:GlobalResource, ListSearchExtender.PromptText%>' QueryPattern="Contains" IsSorted="true" QueryTimeout="2000"></ajaxToolkit:ListSearchExtender><asp:ObjectDataSource ID="TickettypesDS" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetTickettypes" TypeName="TicketLookupService"></asp:ObjectDataSource></InsertItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfPriority" SortExpression="PriorityId"><InsertItemTemplate><asp:DropDownList ID="DropDownListPriority" runat="server" DataSourceID="PrioritiesDS" DataTextField="Name" DataValueField="Id" SelectedValue='<%# Bind("PriorityId") %>' OnDataBound="DropDownListPriority_DataBound"></asp:DropDownList><ajaxToolkit:ListSearchExtender ID="ListSearchExtenderPriority" runat="server" TargetControlID="DropDownListPriority" PromptCssClass="ListSearchExtenderPrompt" meta:resourcekey="ListSearchExtender" QueryPattern="Contains" IsSorted="true" QueryTimeout="2000"></ajaxToolkit:ListSearchExtender><asp:ObjectDataSource ID="PrioritiesDS" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetPriorities" TypeName="TicketLookupService"></asp:ObjectDataSource></InsertItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfDescription" SortExpression="Description"><InsertItemTemplate><asp:Panel ID="PanelText" runat="server" CssClass="frameText"><asp:TextBox ID="TextBoxDesc" runat="server" Rows="5" Text='<%# Bind("Description") %>' TextMode="MultiLine" CssClass="noborder" /></asp:Panel><ajaxToolkit:ResizableControlExtender ID="resizeDesc" runat="server" TargetControlID="PanelText" ResizableCssClass="resizingText" HandleCssClass="handleText" MinimumWidth="450" MinimumHeight="250" MaximumWidth="900" MaximumHeight="700" OnClientResize="OnClientResizeText" /></InsertItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfAttachment"><ItemTemplate><asp:FileUpload ID="attUpload" runat="server" Width="455" /></ItemTemplate></asp:TemplateField><asp:TemplateField meta:resourcekey="tfPublic"><InsertItemTemplate><asp:CheckBox ID="chkPublic" runat="server" Checked="true" Enabled='<%# CurrentUserDevOrAdmin() %>' /></InsertItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="" ControlStyle-CssClass="commentButton" ShowHeader="False"><ItemTemplate><asp:Button ID="ButtonInsert" runat="server" meta:resourcekey="ButtonInsert" OnClientClick="checkUpload(); showWait(); CheckDoubleClick();" OnClick="DetailView_Insert" CommandName="Insert" CausesValidation="true" /><asp:Button ID="ButtonCancel" runat="server" meta:resourcekey="ButtonCancel" CommandName="Cancel" CausesValidation="false" /></ItemTemplate><ControlStyle CssClass="commentButton" /></asp:TemplateField></Fields></asp:DetailsView>
As I've mentioned at the beginning the page works but SOMETIMES I get the following exception:
System.ArgumentException: the extender control "ListSearchExtenderProjects" is not a registered control. Extendersteuerelemente müssen mithilfe von RegisterExtenderControl() registriert werden, bevor RegisterScriptDescriptors() aufgerufen wird.
Parametername: extenderControl
bei System.Web.UI.ScriptControlManager.RegisterScriptDescriptors(IExtenderControl extenderControl)
bei System.Web.UI.ExtenderControl.Render(HtmlTextWriter writer)
bei AjaxControlToolkit.ExtenderControlBase.Render(HtmlTextWriter writer) in f:\TeamCity\buildAgent\work\80acd78aa4c25314\Server\AjaxControlToolkit\ExtenderBase\ExtenderControlBase.cs:line 360.
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.WebControls.TableCell.RenderContents(HtmlTextWriter writer)
bei System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
bei System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
bei System.Web.UI.WebControls.Table.RenderContents(HtmlTextWriter writer)
bei System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
bei System.Web.UI.WebControls.DetailsView.Render(HtmlTextWriter writer, Boolean renderPanel)
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.UpdatePanel.RenderChildren(HtmlTextWriter writer)
bei System.Web.UI.UpdatePanel.Render(HtmlTextWriter writer)
bei ASP.general_createticket_aspx.__RenderContent2(HtmlTextWriter __w, Control parameterContainer)
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
bei System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
bei System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
bei System.Web.UI.Page.Render(HtmlTextWriter writer)
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Web.UI.Page.HandleError(Exception e)
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
bei System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
bei System.Web.UI.Page.PageAsyncInfo.CallHandlersPossiblyUnderLock(Boolean onPageThread)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Web.UI.Page.AsyncPageEndProcessRequest(IAsyncResult result)
bei ASP.general_createticket_aspx.EndProcessRequest(IAsyncResult ar)
bei System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)
The page runs asynchron because I'm sending an email in async mode in code behind. But I've a second page which runs with async=true and there the listsearch extenders run well...
Do you have any tips or ideas how to solve this issue?
Thanks!
Best Regards,
Markus