[Mono-bugs] [Bug 658278] New: Ajaxified control nested in another ajaxified control does not update
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Wed Dec 8 11:35:49 EST 2010
https://bugzilla.novell.com/show_bug.cgi?id=658278
https://bugzilla.novell.com/show_bug.cgi?id=658278#c0
Summary: Ajaxified control nested in another ajaxified control
does not update
Classification: Mono
Product: Mono: Class Libraries
Version: SVN
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Sys.Web
AssignedTo: mhabersack at novell.com
ReportedBy: jmilillo at aviorcomputing.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
Created an attachment (id=403961)
--> (http://bugzilla.novell.com/attachment.cgi?id=403961)
Nested Ajax VS Project
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729; .NET4.0E)
Given a page with a RadTabStrip and a RadMultiPage, the tabstrip is set to
update the multipage via RadAjaxManager in Default. The multipage contains a
user control, which itself contains a button and a label. The button is set to
change the text of the label and update it via RadAjaxProxy.
Clicking on the button causes the whole multipage to refresh, which is not the
desired behavior, because RadAjaxManager creates updatepanels with
ChildrenAsTriggers=true by default. Setting ChildrenAsTriggers=false for the
multipage *should* allow the label only to be updated. However, nothing is
updated in this case, though the label text does get changed (noticed while
stepping through code). The inner updatepanel is not showing in the response
viewed in Firebug, like it does for .Net.
Should a child updatepanel be considered a "child" if it's parent is set to
ChildrenAsTrigger=false?
I was able to get the desired behavior by changing UpdatePanel's RenderChildren
method to not only check for ParentPanel != null but to also check
ParentPanel.ChildrenAsTriggers when trying to determine whether or not to call
ScriptManager.WriteCallbackPanel. I don't know if this is a complete solution,
but seemed to fix my problem.
if (sb.Length > 0) {
if (ParentPanel != null && ParentPanel.ChildrenAsTriggers)
writer.Write (sb.ToString ());
else
ScriptManager.WriteCallbackPanel (responseOutput, this, sb);
}
I also noticed that the updatepanels in the response where listed in the exact
opposite order form .Net. Don't know if that is relevant.
Reproducible: Always
Steps to Reproduce:
1. Click on button "Update multipage label only" at bottom of page
Actual Results:
No update happens.
Expected Results:
Label at bottom of page with starting text "Multipage label before update"
should have changed to "Changed by multipage button (solo)"
Other buttons and one other label are supplied to test other scenarios.
The label/button combo at the top of the page will show ajax working correctly
outside of the multipage.
The first button at the bottom called "Updates outer label only" will show a
nested control correctly updating a control outside of the multipage.
The last button at the bottom called "Updates both labels" will show the outer
label being updated correctly, while the nested label does not.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list