https://bugzilla.novell.com/show_bug.cgi?id=649034
https://bugzilla.novell.com/show_bug.cgi?id=649034#c0 Summary: UpdateProgress doesn't find UpdatePanel inside a userercontrol Classification: Mono Product: Mono: Class Libraries Version: 2.4.x Platform: x86-64 OS/Version: Linux Status: NEW Severity: Normal Priority: P5 - None Component: Sys.Web AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Update progress can't associate to an updatepanale that is inside a user control. The folowing pseudo-sample works on windows and not on linux with mono: <asp:UpdateProgress ID="updateTest" associatedUpdatePanelId="updateMain" runat="server"> <ProgressTemplate> Processing... </ProgressTemplate> </asp:UpdateProgress> <cc1:MyControl runat="server" id="MyControlId"> <MyContent> <asp:UpdatePanel id="updateMain" runat="server"> <ContentTemplate> Content </ContentTemplate> </asp:UpdatePanel> </MyContent> </cc1:MyControl> Reproducible: Always Steps to Reproduce: 1. Create a user control. 2. Insert and update panel inside the control (The control should implement ITemplate) 3. Create an UpdateProgress in the page. 4. Assign de AssociatedUpdatePanelId to the update panel (2). Actual Results: InvalidOperationException No UpdatePanel found for AssociatedUpdatePanelID... Expected Results: Works ok on M$. In System.Web.Extension.UpdateProgress class on master git is doing something like protected virtual IEnumerable<ScriptDescriptor> GetScriptDescriptors () { string updatePanelClientId; if (String.IsNullOrEmpty (AssociatedUpdatePanelID)) updatePanelClientId = null; else { UpdatePanel updatePanel = FindControl (AssociatedUpdatePanelID) as UpdatePanel; if (updatePanel == null) throw new InvalidOperationException ("No UpdatePanel found for AssociatedUpdatePanelID '" + AssociatedUpdatePanelID + "'."); updatePanelClientId = updatePanel.ClientID; } ScriptControlDescriptor descriptor = new ScriptControlDescriptor ("Sys.UI._UpdateProgress", this.ClientID); descriptor.AddProperty ("associatedUpdatePanelId", updatePanelClientId); descriptor.AddProperty ("displayAfter", DisplayAfter); descriptor.AddProperty ("dynamicLayout", DynamicLayout); yield return descriptor; } and it should: protected virtual IEnumerable<ScriptDescriptor> GetScriptDescriptors () { string updatePanelClientId; if (String.IsNullOrEmpty (AssociatedUpdatePanelID)) updatePanelClientId = null; else { UpdatePanel updatePanel = FindControl (AssociatedUpdatePanelID) as UpdatePanel; if (updatePanel == null) updatePanel = FindUserControl (AssociatedUpdatePanelID) as UpdatePanel // This method should work recursively if (updatePanel == null) throw new InvalidOperationException ("No UpdatePanel found for AssociatedUpdatePanelID '" + AssociatedUpdatePanelID + "'."); updatePanelClientId = updatePanel.ClientID; } ScriptControlDescriptor descriptor = new ScriptControlDescriptor ("Sys.UI._UpdateProgress", this.ClientID); descriptor.AddProperty ("associatedUpdatePanelId", updatePanelClientId); descriptor.AddProperty ("displayAfter", DisplayAfter); descriptor.AddProperty ("dynamicLayout", DynamicLayout); yield return descriptor; } -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
