<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET AJAX Discussion and Suggestions</title><link>http://forums.asp.net/1007.aspx</link><description>This forum is the place for ASP.NET AJAX 'getting started' questions, general questions that don't fit in one of the other forums about AJAX </description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1653671.aspx</link><pubDate>Thu, 05 Apr 2007 17:27:31 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1653671</guid><dc:creator>richardsoeteman.net</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1653671.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1653671</wfw:commentRss><description>&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;Hereby the updated post.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I faced the same problem this week. In the documentation I read about the RequiresUpdate property wich is a protected property on the UpdatePanel. Since it's a protected property I could'nt access it directly. That's why I created my own contol wich extends the update panel. I created an extra property "IsUpating", wich will indicate if an updatepanel is triggered for updating. The property will return true if a AscyncPostbackTrigger was raised or the Update method was called Directly. The downside of this solution is that the property is available not earlier then the OnLoadComplete Event. &lt;/p&gt;
&lt;p&gt;Here´s the code for the extended component&lt;/p&gt;&lt;pre class=coloredcode&gt;&lt;b id=1&gt;1    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System;
&lt;b id=2&gt;2    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;b id=3&gt;3    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Text;
&lt;b id=4&gt;4    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web;
&lt;b id=5&gt;5    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI;
&lt;b id=6&gt;6    &lt;/b&gt;
&lt;b id=7&gt;7    &lt;/b&gt;&lt;span class=kwd&gt;namespace&lt;/span&gt; UpdatePanelControlExtender
&lt;b id=8&gt;8    &lt;/b&gt;{
&lt;b id=9&gt;9    &lt;/b&gt;    &lt;span class=cmt&gt;/// &amp;lt;summary&amp;gt;
&lt;b id=10&gt;10   &lt;/b&gt;    /// Extends the Normal UpdatePanel so we can determine if the 
&lt;b id=11&gt;11   &lt;/b&gt;    /// UpdatePanel is in PartialRendering stage.
&lt;b id=12&gt;12   &lt;/b&gt;    /// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;b id=13&gt;13   &lt;/b&gt;    &lt;span class=kwd&gt;public class&lt;/span&gt; ExtendedUpdatePanel : UpdatePanel
&lt;b id=14&gt;14   &lt;/b&gt;    {
&lt;b id=15&gt;15   &lt;/b&gt;
&lt;b id=16&gt;16   &lt;/b&gt;        &lt;span class=cmt&gt;/// &amp;lt;summary&amp;gt;
&lt;b id=17&gt;17   &lt;/b&gt;        /// Indicates that the UpdatePanel is updating
&lt;b id=18&gt;18   &lt;/b&gt;        /// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;b id=19&gt;19   &lt;/b&gt;        &lt;span class=kwd&gt;public bool&lt;/span&gt; IsUpdating
&lt;b id=20&gt;20   &lt;/b&gt;        {
&lt;b id=21&gt;21   &lt;/b&gt;            &lt;span class=kwd&gt;get&lt;/span&gt;
&lt;b id=22&gt;22   &lt;/b&gt;            {
&lt;b id=23&gt;23   &lt;/b&gt;                &lt;span class=kwd&gt;return this&lt;/span&gt;.RequiresUpdate;
&lt;b id=24&gt;24   &lt;/b&gt;            }
&lt;b id=25&gt;25   &lt;/b&gt;        }
&lt;b id=26&gt;26   &lt;/b&gt;    }
&lt;b id=27&gt;27   &lt;/b&gt;
&lt;b id=28&gt;28   &lt;/b&gt;}
&lt;b id=29&gt;29   &lt;/b&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;Below you find the Sample ASPX and the Code behind I used for testing. Basicly you have three buttons:&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;&lt;pre class=coloredcode&gt;UpdateButton. The click event is added to the AsyncPostbackTriggerCollection, so ExtendedUpdatePanel2 will be updated&lt;/pre&gt;
&lt;/li&gt;&lt;li&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;UpdateInCodeBehind. The Click event handler calls the UodateMethod of ExtendedUpdatePanel2, so ExtendedUpdatePanel2  will be updated&lt;/pre&gt;
&lt;/li&gt;&lt;li&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;NoUpdateButton. This button will cause an update ExtendedUpdatePanel2&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;I have used an extra ExtendedUpdatepanel (ExtendedUpdatePanel1) to show is ExtendedUpdatePanel2 was updated.&lt;/pre&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;&lt;strong&gt;Default.aspx file&lt;/strong&gt;&lt;pre class=coloredcode&gt;&lt;b id=1&gt;1    &lt;/b&gt;&lt;span class=dir&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;
&lt;b id=2&gt;2    &lt;/b&gt;
&lt;b id=3&gt;3    &lt;/b&gt;&amp;lt;%@ Register Assembly="UpdatePanelControlExtender" Namespace="UpdatePanelControlExtender"
&lt;b id=4&gt;4    &lt;/b&gt;    TagPrefix="cc1" %&amp;gt;&lt;/span&gt;
&lt;b id=5&gt;5    &lt;/b&gt;
&lt;b id=6&gt;6    &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;!DOCTYPE&lt;/span&gt; html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&amp;gt;
&lt;b id=7&gt;7    &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;html&lt;/span&gt;&lt;span class=attr&gt; xmlns=&lt;/span&gt;&lt;span class=attrv&gt;"http://www.w3.org/1999/xhtml"&lt;/span&gt;&amp;gt;
&lt;b id=8&gt;8    &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;head&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&amp;gt;
&lt;b id=9&gt;9    &lt;/b&gt;    &amp;lt;&lt;span class=tag&gt;title&lt;/span&gt;&amp;gt;Untitled Page&amp;lt;/&lt;span class=tag&gt;title&lt;/span&gt;&amp;gt;
&lt;b id=10&gt;10   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;head&lt;/span&gt;&amp;gt;
&lt;b id=11&gt;11   &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;body&lt;/span&gt;&amp;gt;
&lt;b id=12&gt;12   &lt;/b&gt;    &amp;lt;&lt;span class=tag&gt;form&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"form1"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&amp;gt;
&lt;b id=13&gt;13   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;asp:ScriptManager&lt;/span&gt;&lt;span class=attr&gt; ID=&lt;/span&gt;&lt;span class=attrv&gt;"ScriptManager1"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt; /&amp;gt;
&lt;b id=14&gt;14   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt;
&lt;b id=15&gt;15   &lt;/b&gt;            &amp;lt;&lt;span class=tag&gt;cc1:extendedupdatepanel&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"ExtendedUpdatePanel1"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; UpdateMode=&lt;/span&gt;&lt;span class=attrv&gt;"Conditional"&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=tag&gt;ContentTemplate&lt;/span&gt;&amp;gt;
&lt;b id=16&gt;16   &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;asp:Label&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"IsUpdatingLabel"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt; Text=""&amp;gt;&amp;lt;/&lt;span class=tag&gt;asp:Label&lt;/span&gt;&amp;gt;
&lt;b id=17&gt;17   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;ContentTemplate&lt;/span&gt;&amp;gt;
&lt;b id=18&gt;18   &lt;/b&gt;                &amp;lt;&lt;span class=tag&gt;Triggers&lt;/span&gt;&amp;gt;
&lt;b id=19&gt;19   &lt;/b&gt;                    &amp;lt;&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&lt;span class=attr&gt; ControlID=&lt;/span&gt;&lt;span class=attrv&gt;"NoUpdateButton"&lt;/span&gt;&lt;span class=attr&gt; EventName=&lt;/span&gt;&lt;span class=attrv&gt;"Click"&lt;/span&gt; /&amp;gt;
&lt;b id=20&gt;20   &lt;/b&gt;                    &amp;lt;&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&lt;span class=attr&gt; ControlID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateButton"&lt;/span&gt;&lt;span class=attr&gt; EventName=&lt;/span&gt;&lt;span class=attrv&gt;"Click"&lt;/span&gt; /&amp;gt;
&lt;b id=21&gt;21   &lt;/b&gt;                    &amp;lt;&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&lt;span class=attr&gt; ControlID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateInCodeBehind"&lt;/span&gt;&lt;span class=attr&gt; EventName=&lt;/span&gt;&lt;span class=attrv&gt;"Click"&lt;/span&gt; /&amp;gt;
&lt;b id=22&gt;22   &lt;/b&gt;                &amp;lt;/&lt;span class=tag&gt;Triggers&lt;/span&gt;&amp;gt;
&lt;b id=23&gt;23   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;cc1:extendedupdatepanel&lt;/span&gt;&amp;gt;
&lt;b id=24&gt;24   &lt;/b&gt;        &amp;lt;/&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt;
&lt;b id=25&gt;25   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;cc1:extendedupdatepanel&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"ExtendedUpdatePanel2"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; UpdateMode=&lt;/span&gt;&lt;span class=attrv&gt;"Conditional"&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=tag&gt;ContentTemplate&lt;/span&gt;&amp;gt;
&lt;b id=26&gt;26   &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;asp:Label&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"TriggerUpdateTimeLabel"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt; Text=""&amp;gt;&amp;lt;/&lt;span class=tag&gt;asp:Label&lt;/span&gt;&amp;gt;
&lt;b id=27&gt;27   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;ContentTemplate&lt;/span&gt;&amp;gt;
&lt;b id=28&gt;28   &lt;/b&gt;            &amp;lt;&lt;span class=tag&gt;Triggers&lt;/span&gt;&amp;gt;
&lt;b id=29&gt;29   &lt;/b&gt;                &amp;lt;&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&lt;span class=attr&gt; ControlID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateButton"&lt;/span&gt;&lt;span class=attr&gt; EventName=&lt;/span&gt;&lt;span class=attrv&gt;"Click"&lt;/span&gt;&amp;gt;
&lt;b id=30&gt;30   &lt;/b&gt;                &amp;lt;/&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&amp;gt;
&lt;b id=31&gt;31   &lt;/b&gt;            &amp;lt;/&lt;span class=tag&gt;Triggers&lt;/span&gt;&amp;gt;
&lt;b id=32&gt;32   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;cc1:extendedupdatepanel&lt;/span&gt;&amp;gt;
&lt;b id=33&gt;33   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;asp:Button&lt;/span&gt;&lt;span class=attr&gt; ID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateButton"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; Text=&lt;/span&gt;&lt;span class=attrv&gt;"Trigger Update Panel"&lt;/span&gt; /&amp;gt;
&lt;b id=34&gt;34   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;asp:Button&lt;/span&gt;&lt;span class=attr&gt; ID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateInCodeBehind"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; Text=&lt;/span&gt;&lt;span class=attrv&gt;"Call Update statement in Click event"&lt;/span&gt;&lt;span class=attr&gt;  OnClick=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateInCodeBehind_Click"&lt;/span&gt;/&amp;gt;
&lt;b id=35&gt;35   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;asp:Button&lt;/span&gt;&lt;span class=attr&gt; ID=&lt;/span&gt;&lt;span class=attrv&gt;"NoUpdateButton"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; Text=&lt;/span&gt;&lt;span class=attrv&gt;"Do not trigger"&lt;/span&gt; /&amp;gt;
&lt;b id=36&gt;36   &lt;/b&gt;    &amp;lt;/&lt;span class=tag&gt;form&lt;/span&gt;&amp;gt;
&lt;b id=37&gt;37   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;body&lt;/span&gt;&amp;gt;
&lt;b id=38&gt;38   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;html&lt;/span&gt;&amp;gt;
&lt;b id=39&gt;39   &lt;/b&gt;
&lt;/pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&lt;strong&gt;Code Behind&lt;/strong&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;&lt;pre class=coloredcode&gt;&lt;b id=1&gt;1    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System;
&lt;b id=2&gt;2    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Data;
&lt;b id=3&gt;3    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Configuration;
&lt;b id=4&gt;4    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web;
&lt;b id=5&gt;5    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.Security;
&lt;b id=6&gt;6    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI;
&lt;b id=7&gt;7    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI.WebControls;
&lt;b id=8&gt;8    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI.WebControls.WebParts;
&lt;b id=9&gt;9    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI.HtmlControls;
&lt;b id=10&gt;10   &lt;/b&gt;
&lt;b id=11&gt;11   &lt;/b&gt;&lt;span class=kwd&gt;public&lt;/span&gt; partial &lt;span class=kwd&gt;class&lt;/span&gt; _Default : System.Web.UI.Page 
&lt;b id=12&gt;12   &lt;/b&gt;{
&lt;b id=13&gt;13   &lt;/b&gt;    &lt;span class=kwd&gt;protected void&lt;/span&gt; Page_Load(&lt;span class=kwd&gt;object&lt;/span&gt; sender, EventArgs e)
&lt;b id=14&gt;14   &lt;/b&gt;    {
&lt;b id=15&gt;15   &lt;/b&gt;        &lt;span class=cmt&gt;//this.TriggerUpdateTimeLabel.Text = DateTime.Now.ToLongTimeString();&lt;/span&gt;
&lt;b id=16&gt;16   &lt;/b&gt;    }
&lt;b id=17&gt;17   &lt;/b&gt;
&lt;b id=18&gt;18   &lt;/b&gt;    &lt;span class=kwd&gt;protected override void&lt;/span&gt; OnLoadComplete(EventArgs e)
&lt;b id=19&gt;19   &lt;/b&gt;    {
&lt;b id=20&gt;20   &lt;/b&gt;        &lt;span class=kwd&gt;base&lt;/span&gt;.OnLoadComplete(e);
&lt;b id=21&gt;21   &lt;/b&gt;        &lt;span class=kwd&gt;this&lt;/span&gt;.IsUpdatingLabel.Text = &lt;span class=kwd&gt;string&lt;/span&gt;.Format(&lt;span class=st&gt;"Updatepanel updating = {0}"&lt;/span&gt;, &lt;span class=kwd&gt;this&lt;/span&gt;.ExtendedUpdatePanel2.IsUpdating);
&lt;b id=22&gt;22   &lt;/b&gt;
&lt;b id=23&gt;23   &lt;/b&gt;        &lt;span class=kwd&gt;if&lt;/span&gt; (&lt;span class=kwd&gt;this&lt;/span&gt;.ExtendedUpdatePanel2.IsUpdating)
&lt;b id=24&gt;24   &lt;/b&gt;        {
&lt;b id=25&gt;25   &lt;/b&gt;            &lt;span class=kwd&gt;this&lt;/span&gt;.TriggerUpdateTimeLabel.Text = &lt;span class=kwd&gt;string&lt;/span&gt;.Format(&lt;span class=st&gt;"update triggered at{0}"&lt;/span&gt;,DateTime.Now.ToLongTimeString());
&lt;b id=26&gt;26   &lt;/b&gt;        }
&lt;b id=27&gt;27   &lt;/b&gt;    }
&lt;b id=28&gt;28   &lt;/b&gt;
&lt;b id=29&gt;29   &lt;/b&gt;    &lt;span class=kwd&gt;protected void&lt;/span&gt; UpdateInCodeBehind_Click(&lt;span class=kwd&gt;object&lt;/span&gt; sender, EventArgs e)
&lt;b id=30&gt;30   &lt;/b&gt;    {
&lt;b id=31&gt;31   &lt;/b&gt;        &lt;span class=kwd&gt;this&lt;/span&gt;.ExtendedUpdatePanel2.Update();
&lt;b id=32&gt;32   &lt;/b&gt;    }
&lt;b id=33&gt;33   &lt;/b&gt;}
&lt;/pre&gt;&amp;nbsp;&lt;/pre&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1652660.aspx</link><pubDate>Thu, 05 Apr 2007 06:26:07 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1652660</guid><dc:creator>richardsoeteman.net</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1652660.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1652660</wfw:commentRss><description>I posted the wrong code behind. Sorry for that. I&amp;nbsp;will update it tonight.</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1652061.aspx</link><pubDate>Wed, 04 Apr 2007 20:31:20 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1652061</guid><dc:creator>richardsoeteman.net</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1652061.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1652061</wfw:commentRss><description>&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;I faced the same problem this week. In the documentation I read about the RequiresUpdate property wich is a protected property on the UpdatePanel. Since it's a protected property I could'nt access it directly. That's why I created my own contol wich extends the update panel. I created an extra property "IsUpating", wich will indicate if an updatepanel is triggered for updating. The property will return true if a AscyncPostbackTrigger was raised or the Update method was called Directly. The downside of this solution is that the property is available not earlier then the OnLoadComplete Event. &lt;/p&gt;
&lt;p&gt;Here´s the code for the extended component&lt;/p&gt;&lt;pre class=coloredcode&gt;&lt;b id=1&gt;1    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System;
&lt;b id=2&gt;2    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;b id=3&gt;3    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Text;
&lt;b id=4&gt;4    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web;
&lt;b id=5&gt;5    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI;
&lt;b id=6&gt;6    &lt;/b&gt;
&lt;b id=7&gt;7    &lt;/b&gt;&lt;span class=kwd&gt;namespace&lt;/span&gt; UpdatePanelControlExtender
&lt;b id=8&gt;8    &lt;/b&gt;{
&lt;b id=9&gt;9    &lt;/b&gt;    &lt;span class=cmt&gt;/// &amp;lt;summary&amp;gt;
&lt;b id=10&gt;10   &lt;/b&gt;    /// Extends the Normal UpdatePanel so we can determine if the 
&lt;b id=11&gt;11   &lt;/b&gt;    /// UpdatePanel is in PartialRendering stage.
&lt;b id=12&gt;12   &lt;/b&gt;    /// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;b id=13&gt;13   &lt;/b&gt;    &lt;span class=kwd&gt;public class&lt;/span&gt; ExtendedUpdatePanel : UpdatePanel
&lt;b id=14&gt;14   &lt;/b&gt;    {
&lt;b id=15&gt;15   &lt;/b&gt;
&lt;b id=16&gt;16   &lt;/b&gt;        &lt;span class=cmt&gt;/// &amp;lt;summary&amp;gt;
&lt;b id=17&gt;17   &lt;/b&gt;        /// Indicates that the UpdatePanel is updating
&lt;b id=18&gt;18   &lt;/b&gt;        /// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;b id=19&gt;19   &lt;/b&gt;        &lt;span class=kwd&gt;public bool&lt;/span&gt; IsUpdating
&lt;b id=20&gt;20   &lt;/b&gt;        {
&lt;b id=21&gt;21   &lt;/b&gt;            &lt;span class=kwd&gt;get&lt;/span&gt;
&lt;b id=22&gt;22   &lt;/b&gt;            {
&lt;b id=23&gt;23   &lt;/b&gt;                &lt;span class=kwd&gt;return this&lt;/span&gt;.RequiresUpdate;
&lt;b id=24&gt;24   &lt;/b&gt;            }
&lt;b id=25&gt;25   &lt;/b&gt;        }
&lt;b id=26&gt;26   &lt;/b&gt;    }
&lt;b id=27&gt;27   &lt;/b&gt;
&lt;b id=28&gt;28   &lt;/b&gt;}
&lt;b id=29&gt;29   &lt;/b&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;Below you find the Sample ASPX and the Code behind I used for testing. Basicly you have three buttons:&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;&lt;pre class=coloredcode&gt;UpdateButton. The click event is added to the AsyncPostbackTriggerCollection, so ExtendedUpdatePanel2 will be updated&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;UpdateInCodeBehind. The Click event handler calls the UodateMethod of ExtendedUpdatePanel2, so ExtendedUpdatePanel2  will be updated&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;NoUpdateButton. This button will cause an update ExtendedUpdatePanel2&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;I have used an extra ExtendedUpdatepanel (ExtendedUpdatePanel1) to show is ExtendedUpdatePanel2 was updated.&lt;/pre&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;&lt;strong&gt;Default.aspx file&lt;/strong&gt;&lt;pre class=coloredcode&gt;&lt;b id=1&gt;1    &lt;/b&gt;&lt;span class=dir&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&amp;gt;
&lt;b id=2&gt;2    &lt;/b&gt;
&lt;b id=3&gt;3    &lt;/b&gt;&amp;lt;%@ Register Assembly="UpdatePanelControlExtender" Namespace="UpdatePanelControlExtender"
&lt;b id=4&gt;4    &lt;/b&gt;    TagPrefix="cc1" %&amp;gt;&lt;/span&gt;
&lt;b id=5&gt;5    &lt;/b&gt;
&lt;b id=6&gt;6    &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;!DOCTYPE&lt;/span&gt; html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&amp;gt;
&lt;b id=7&gt;7    &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;html&lt;/span&gt;&lt;span class=attr&gt; xmlns=&lt;/span&gt;&lt;span class=attrv&gt;"http://www.w3.org/1999/xhtml"&lt;/span&gt;&amp;gt;
&lt;b id=8&gt;8    &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;head&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&amp;gt;
&lt;b id=9&gt;9    &lt;/b&gt;    &amp;lt;&lt;span class=tag&gt;title&lt;/span&gt;&amp;gt;Untitled Page&amp;lt;/&lt;span class=tag&gt;title&lt;/span&gt;&amp;gt;
&lt;b id=10&gt;10   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;head&lt;/span&gt;&amp;gt;
&lt;b id=11&gt;11   &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;body&lt;/span&gt;&amp;gt;
&lt;b id=12&gt;12   &lt;/b&gt;    &amp;lt;&lt;span class=tag&gt;form&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"form1"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&amp;gt;
&lt;b id=13&gt;13   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;asp:ScriptManager&lt;/span&gt;&lt;span class=attr&gt; ID=&lt;/span&gt;&lt;span class=attrv&gt;"ScriptManager1"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt; /&amp;gt;
&lt;b id=14&gt;14   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt;
&lt;b id=15&gt;15   &lt;/b&gt;            &amp;lt;&lt;span class=tag&gt;cc1:extendedupdatepanel&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"ExtendedUpdatePanel1"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; UpdateMode=&lt;/span&gt;&lt;span class=attrv&gt;"Conditional"&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=tag&gt;ContentTemplate&lt;/span&gt;&amp;gt;
&lt;b id=16&gt;16   &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;asp:Label&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"IsUpdatingLabel"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt; Text=""&amp;gt;&amp;lt;/&lt;span class=tag&gt;asp:Label&lt;/span&gt;&amp;gt;
&lt;b id=17&gt;17   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;ContentTemplate&lt;/span&gt;&amp;gt;
&lt;b id=18&gt;18   &lt;/b&gt;                &amp;lt;&lt;span class=tag&gt;Triggers&lt;/span&gt;&amp;gt;
&lt;b id=19&gt;19   &lt;/b&gt;                    &amp;lt;&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&lt;span class=attr&gt; ControlID=&lt;/span&gt;&lt;span class=attrv&gt;"NoUpdateButton"&lt;/span&gt;&lt;span class=attr&gt; EventName=&lt;/span&gt;&lt;span class=attrv&gt;"Click"&lt;/span&gt; /&amp;gt;
&lt;b id=20&gt;20   &lt;/b&gt;                    &amp;lt;&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&lt;span class=attr&gt; ControlID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateButton"&lt;/span&gt;&lt;span class=attr&gt; EventName=&lt;/span&gt;&lt;span class=attrv&gt;"Click"&lt;/span&gt; /&amp;gt;
&lt;b id=21&gt;21   &lt;/b&gt;                    &amp;lt;&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&lt;span class=attr&gt; ControlID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateInCodeBehind"&lt;/span&gt;&lt;span class=attr&gt; EventName=&lt;/span&gt;&lt;span class=attrv&gt;"Click"&lt;/span&gt; /&amp;gt;
&lt;b id=22&gt;22   &lt;/b&gt;                &amp;lt;/&lt;span class=tag&gt;Triggers&lt;/span&gt;&amp;gt;
&lt;b id=23&gt;23   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;cc1:extendedupdatepanel&lt;/span&gt;&amp;gt;
&lt;b id=24&gt;24   &lt;/b&gt;        &amp;lt;/&lt;span class=tag&gt;div&lt;/span&gt;&amp;gt;
&lt;b id=25&gt;25   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;cc1:extendedupdatepanel&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"ExtendedUpdatePanel2"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; UpdateMode=&lt;/span&gt;&lt;span class=attrv&gt;"Conditional"&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=tag&gt;ContentTemplate&lt;/span&gt;&amp;gt;
&lt;b id=26&gt;26   &lt;/b&gt;&amp;lt;&lt;span class=tag&gt;asp:Label&lt;/span&gt;&lt;span class=attr&gt; id=&lt;/span&gt;&lt;span class=attrv&gt;"TriggerUpdateTimeLabel"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt; Text=""&amp;gt;&amp;lt;/&lt;span class=tag&gt;asp:Label&lt;/span&gt;&amp;gt;
&lt;b id=27&gt;27   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;ContentTemplate&lt;/span&gt;&amp;gt;
&lt;b id=28&gt;28   &lt;/b&gt;            &amp;lt;&lt;span class=tag&gt;Triggers&lt;/span&gt;&amp;gt;
&lt;b id=29&gt;29   &lt;/b&gt;                &amp;lt;&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&lt;span class=attr&gt; ControlID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateButton"&lt;/span&gt;&lt;span class=attr&gt; EventName=&lt;/span&gt;&lt;span class=attrv&gt;"Click"&lt;/span&gt;&amp;gt;
&lt;b id=30&gt;30   &lt;/b&gt;                &amp;lt;/&lt;span class=tag&gt;asp:AsyncPostBackTrigger&lt;/span&gt;&amp;gt;
&lt;b id=31&gt;31   &lt;/b&gt;            &amp;lt;/&lt;span class=tag&gt;Triggers&lt;/span&gt;&amp;gt;
&lt;b id=32&gt;32   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;cc1:extendedupdatepanel&lt;/span&gt;&amp;gt;
&lt;b id=33&gt;33   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;asp:Button&lt;/span&gt;&lt;span class=attr&gt; ID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateButton"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; Text=&lt;/span&gt;&lt;span class=attrv&gt;"Trigger Update Panel"&lt;/span&gt; /&amp;gt;
&lt;b id=34&gt;34   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;asp:Button&lt;/span&gt;&lt;span class=attr&gt; ID=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateInCodeBehind"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; Text=&lt;/span&gt;&lt;span class=attrv&gt;"Call Update statement in Click event"&lt;/span&gt;&lt;span class=attr&gt;  OnClick=&lt;/span&gt;&lt;span class=attrv&gt;"UpdateInCodeBehind_Click"&lt;/span&gt;/&amp;gt;
&lt;b id=35&gt;35   &lt;/b&gt;        &amp;lt;&lt;span class=tag&gt;asp:Button&lt;/span&gt;&lt;span class=attr&gt; ID=&lt;/span&gt;&lt;span class=attrv&gt;"NoUpdateButton"&lt;/span&gt;&lt;span class=attr&gt; runat=&lt;/span&gt;&lt;span class=attrv&gt;"server"&lt;/span&gt;&lt;span class=attr&gt; Text=&lt;/span&gt;&lt;span class=attrv&gt;"Do not trigger"&lt;/span&gt; /&amp;gt;
&lt;b id=36&gt;36   &lt;/b&gt;    &amp;lt;/&lt;span class=tag&gt;form&lt;/span&gt;&amp;gt;
&lt;b id=37&gt;37   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;body&lt;/span&gt;&amp;gt;
&lt;b id=38&gt;38   &lt;/b&gt;&amp;lt;/&lt;span class=tag&gt;html&lt;/span&gt;&amp;gt;
&lt;b id=39&gt;39   &lt;/b&gt;
&lt;/pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&lt;strong&gt;Code Behind&lt;/strong&gt;&lt;/pre&gt;&lt;pre class=coloredcode&gt;&amp;nbsp;&lt;pre class=coloredcode&gt;&lt;b id=1&gt;1    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System;
&lt;b id=2&gt;2    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;b id=3&gt;3    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Text;
&lt;b id=4&gt;4    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web;
&lt;b id=5&gt;5    &lt;/b&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI;
&lt;b id=6&gt;6    &lt;/b&gt;
&lt;b id=7&gt;7    &lt;/b&gt;&lt;span class=kwd&gt;namespace&lt;/span&gt; UpdatePanelControlExtender
&lt;b id=8&gt;8    &lt;/b&gt;{
&lt;b id=9&gt;9    &lt;/b&gt;    &lt;span class=cmt&gt;/// &amp;lt;summary&amp;gt;
&lt;b id=10&gt;10   &lt;/b&gt;    /// Extends the Normal UpdatePanel so we can determine if the 
&lt;b id=11&gt;11   &lt;/b&gt;    /// UpdatePanel is in PartialRendering stage.
&lt;b id=12&gt;12   &lt;/b&gt;    /// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;b id=13&gt;13   &lt;/b&gt;    &lt;span class=kwd&gt;public class&lt;/span&gt; ExtendedUpdatePanel : UpdatePanel
&lt;b id=14&gt;14   &lt;/b&gt;    {
&lt;b id=15&gt;15   &lt;/b&gt;
&lt;b id=16&gt;16   &lt;/b&gt;        &lt;span class=cmt&gt;/// &amp;lt;summary&amp;gt;
&lt;b id=17&gt;17   &lt;/b&gt;        /// Indicates that the UpdatePanel is updating
&lt;b id=18&gt;18   &lt;/b&gt;        /// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;b id=19&gt;19   &lt;/b&gt;        &lt;span class=kwd&gt;public bool&lt;/span&gt; IsUpdating
&lt;b id=20&gt;20   &lt;/b&gt;        {
&lt;b id=21&gt;21   &lt;/b&gt;            &lt;span class=kwd&gt;get&lt;/span&gt;
&lt;b id=22&gt;22   &lt;/b&gt;            {
&lt;b id=23&gt;23   &lt;/b&gt;                &lt;span class=kwd&gt;return this&lt;/span&gt;.RequiresUpdate;
&lt;b id=24&gt;24   &lt;/b&gt;            }
&lt;b id=25&gt;25   &lt;/b&gt;        }
&lt;b id=26&gt;26   &lt;/b&gt;    }
&lt;b id=27&gt;27   &lt;/b&gt;
&lt;b id=28&gt;28   &lt;/b&gt;}
&lt;b id=29&gt;29   &lt;/b&gt;
&lt;/pre&gt;&amp;nbsp;&lt;/pre&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1509107.aspx</link><pubDate>Tue, 26 Dec 2006 20:47:32 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1509107</guid><dc:creator>ewlloyd</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1509107.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1509107</wfw:commentRss><description>&lt;p&gt;Cyril,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Yeah, you're right. Good catch. I'll tweak on it some more as the need arises.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;Eric&lt;/p&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1507044.aspx</link><pubDate>Fri, 22 Dec 2006 22:53:46 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1507044</guid><dc:creator>CyrilCS</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1507044.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1507044</wfw:commentRss><description>&lt;p&gt;Hi, &lt;/p&gt;
&lt;p&gt;you're right, my code works only for refreshed panel fired with a trigger. This code would work in many case : &lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:Courier New;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;96&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt; FindRefreshedUpdatePanel(&lt;span style="COLOR:#2b91af;"&gt;ScriptManager&lt;/span&gt; sc)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;98&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;Control&lt;/span&gt; control = sc.Page.FindControl(sc.AsyncPostBackSourceElementID);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;99&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;while&lt;/span&gt; (control != &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;100&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;101&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (control &lt;span style="COLOR:blue;"&gt;is&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;102&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt;)control;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;103&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;104&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; control = control.NamingContainer;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;105&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;106&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;107&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; FindRefreshedUpdatePanelRecursive(control.Page, sc);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;108&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;109&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;110&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt; FindRefreshedUpdatePanelRecursive(&lt;span style="COLOR:#2b91af;"&gt;Control&lt;/span&gt; parent, &lt;span style="COLOR:#2b91af;"&gt;ScriptManager&lt;/span&gt; sc)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;111&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;112&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;113&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;Control&lt;/span&gt; child &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; parent.Controls)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;114&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;115&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (child &lt;span style="COLOR:blue;"&gt;is&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;116&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;117&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;UpdatePanelTrigger&lt;/span&gt; trigger &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; ((&lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt;)child).Triggers)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;118&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;119&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;String&lt;/span&gt; ControlID;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;120&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (trigger &lt;span style="COLOR:blue;"&gt;is&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;AsyncPostBackTrigger&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;121&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ControlID = ((&lt;span style="COLOR:#2b91af;"&gt;AsyncPostBackTrigger&lt;/span&gt;)trigger).ControlID;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;122&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;else&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (trigger &lt;span style="COLOR:blue;"&gt;is&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;PostBackTrigger&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;123&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ControlID = ((&lt;span style="COLOR:#2b91af;"&gt;PostBackTrigger&lt;/span&gt;)trigger).ControlID;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;124&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;else&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;125&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;continue&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;126&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;127&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (child.NamingContainer.FindControl(ControlID).UniqueID == sc.AsyncPostBackSourceElementID)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;128&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt;)child;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;129&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;130&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;131&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt; c = FindRefreshedUpdatePanelRecursive(child, sc);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;132&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (c != &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;133&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;134&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; c;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;135&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;136&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;137&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;138&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;But I think in some complex case it would not works. For example if we use UserControl, nested UpdatePanel and things like that ... I will have a look at this tommorow.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ewlloyd &amp;gt;&amp;nbsp;I don't try your code but it will not work, &lt;span class=kwd&gt;&lt;font color=#0000ff&gt;if&lt;/font&gt;&lt;/span&gt; (apt.ControlID == elemID) apt.ControlID is only the ID of the client and elemID is the UniqueID ... so if you use UserControl or MasterPage it will not work because the ControlID is different to UniqueID :-)&lt;/p&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1506951.aspx</link><pubDate>Fri, 22 Dec 2006 20:25:04 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1506951</guid><dc:creator>ericpopivker</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1506951.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1506951</wfw:commentRss><description>&lt;p&gt;Hi Eric,&lt;/p&gt;&lt;p&gt;The better way would be if UpdatePanel.IsInPartialRendering would actually return the correct value.&amp;nbsp; Unfortunately it doesn't work correctly and always seems to return false.&lt;/p&gt;&lt;p&gt;Right now Cyril's and my code only returns the first UpdatePanel, but it should be pretty easy to modify our code to return a list of all panels being refreshed. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Regards,&lt;/p&gt;&lt;p&gt;Eric P&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1506937.aspx</link><pubDate>Fri, 22 Dec 2006 20:14:25 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1506937</guid><dc:creator>ewlloyd</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1506937.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1506937</wfw:commentRss><description>&lt;p&gt;My apologies, Cyril.&lt;/p&gt;
&lt;p&gt;I didn't get a really good look at your code before posting. You do seem to have the problem covered pretty well. One thing neither of us handles quite right is the case where a single control might trigger the update of multiple panels.&lt;/p&gt;
&lt;p&gt;Still, does anyone else find it just a bit crazy that we have to go to this monumental effort just to determine which panels are being updated? There should be a better way.&lt;/p&gt;
&lt;p&gt;Cheers!&lt;/p&gt;
&lt;p&gt;Eric&lt;/p&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1506928.aspx</link><pubDate>Fri, 22 Dec 2006 20:04:06 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1506928</guid><dc:creator>ewlloyd</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1506928.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1506928</wfw:commentRss><description>&lt;p&gt;Gents,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Actually, it gets worse. Both code blocks above make the assumption that the triggering AsyncPostBackSourceElementID is a child of the UpdatePanel in question. This is by no means a safe assumption.&lt;/p&gt;
&lt;p&gt;External triggers could set it off. The only way I can see to ensure that you've unequivocally determined which UpdatePanel is being processed is to iterate the UpdatePanels (for which there is no simple method), iterate their triggers (which have to be cast either to PostBackTrigger or AsyncPostBackTrigger to get the ControlID), and compare said ControlIDs with the AsyncPostBackSourceElementID. If you try to generalize it across all the UpdatePanels on a page, it gets pretty Rube Goldberg. I'm using the following code to tell if a specific panel is being updated:&lt;/p&gt;&lt;pre class=coloredcode&gt;	&lt;span class=kwd&gt;private bool&lt;/span&gt; IsUpdating(ScriptManager sm, UpdatePanel up) {
		&lt;span class=kwd&gt;string&lt;/span&gt; elemID = sm.AsyncPostBackSourceElementID;
		&lt;span class=kwd&gt;foreach&lt;/span&gt; (UpdatePanelTrigger t &lt;span class=kwd&gt;in&lt;/span&gt; up.Triggers) {
			PostBackTrigger pt = t &lt;span class=kwd&gt;as&lt;/span&gt; PostBackTrigger;
			&lt;span class=kwd&gt;if&lt;/span&gt; (pt != &lt;span class=kwd&gt;null&lt;/span&gt;)
				&lt;span class=kwd&gt;if&lt;/span&gt; (pt.ControlID == elemID)
					&lt;span class=kwd&gt;return true&lt;/span&gt;;
			AsyncPostBackTrigger apt = t &lt;span class=kwd&gt;as&lt;/span&gt; AsyncPostBackTrigger;
			&lt;span class=kwd&gt;if&lt;/span&gt; (apt != &lt;span class=kwd&gt;null&lt;/span&gt;)
				&lt;span class=kwd&gt;if&lt;/span&gt; (apt.ControlID == elemID)
					&lt;span class=kwd&gt;return true&lt;/span&gt;;
		}
		&lt;span class=kwd&gt;return false&lt;/span&gt;;
	}

&lt;/pre&gt;&amp;nbsp; 
&lt;p&gt;Why the UpdatePanel doesn't provide an event to indicate that it's getting partially updated is quite beyond me. This seems like a glaring hole in the implementation. If there was&amp;nbsp;a compelling reason to leave this out, I'd be very curious to hear it.&lt;/p&gt;
&lt;p&gt;Cheers!&lt;/p&gt;
&lt;p&gt;Eric&lt;/p&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1506710.aspx</link><pubDate>Fri, 22 Dec 2006 17:43:22 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1506710</guid><dc:creator>ericpopivker</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1506710.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1506710</wfw:commentRss><description>&lt;p&gt;Thanks for the code, Cyril...&lt;/p&gt;&lt;p&gt;There is one more case.&amp;nbsp; UpdatePanel can be refreshed using a submit button or another control inside it.&amp;nbsp; In that case you would need to use code like this:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Control control=this.Page.FindControl(scriptManager.AsyncPostBackSourceElementID);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (control != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (control is UpdatePanel)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (UpdatePanel)control;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control = control.Parent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;/p&gt;&lt;p&gt;Regards,&lt;/p&gt;&lt;p&gt;Eric&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1504375.aspx</link><pubDate>Thu, 21 Dec 2006 00:31:15 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1504375</guid><dc:creator>CyrilCS</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1504375.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1504375</wfw:commentRss><description>&lt;p&gt;Hi, &lt;/p&gt;
&lt;p&gt;I think this code would help you. &lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:Courier New;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt; FindRefreshedUpdatePanelRecursive(&lt;span style="COLOR:#2b91af;"&gt;Control&lt;/span&gt; parent, &lt;span style="COLOR:#2b91af;"&gt;ScriptManager&lt;/span&gt; sc)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;87&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;88&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;Control&lt;/span&gt; child &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; parent.Controls)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;89&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;90&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (child &lt;span style="COLOR:blue;"&gt;is&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;91&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;92&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;UpdatePanelTrigger&lt;/span&gt; trigger &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; ((&lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt;)child).Triggers)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;93&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;94&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;String&lt;/span&gt; ControlID; &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;95&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (trigger &lt;span style="COLOR:blue;"&gt;is&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;AsyncPostBackTrigger&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;96&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ControlID = ((&lt;span style="COLOR:#2b91af;"&gt;AsyncPostBackTrigger&lt;/span&gt;)trigger).ControlID; &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;else&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (trigger &lt;span style="COLOR:blue;"&gt;is&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;PostBackTrigger&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;98&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ControlID = ((&lt;span style="COLOR:#2b91af;"&gt;PostBackTrigger&lt;/span&gt;)trigger).ControlID;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;99&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;else&lt;/span&gt; &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;100&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;continue&lt;/span&gt;; &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;101&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;102&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (child.NamingContainer.FindControl(ControlID).UniqueID == sc.AsyncPostBackSourceElementID)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;103&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt;)child; &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;104&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;105&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;106&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;UpdatePanel&lt;/span&gt; c = FindRefreshedUpdatePanelRecursive(child, sc);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;107&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (c != &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;108&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;109&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; c;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;110&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;111&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;112&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;113&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1504282.aspx</link><pubDate>Wed, 20 Dec 2006 22:09:48 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1504282</guid><dc:creator>Steve Marx</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1504282.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1504282</wfw:commentRss><description>You can use: &lt;font color=#008080 size=2&gt;
&lt;p&gt;ScriptManager&lt;/p&gt;&lt;/font&gt;&lt;font size=2&gt;.GetCurrent(Page).AsyncPostBackSourceElementID&lt;/font&gt;
&lt;p&gt;&lt;font size=2&gt;to see what caused the async postback.&lt;/font&gt;&lt;font size=2&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1504279.aspx</link><pubDate>Wed, 20 Dec 2006 22:08:29 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1504279</guid><dc:creator>Bort</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1504279.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1504279</wfw:commentRss><description>BTW, I always get a False value on the IsInPartialRendering property of all my UpdatePanels so this property seems useless.</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1504274.aspx</link><pubDate>Wed, 20 Dec 2006 21:59:32 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1504274</guid><dc:creator>Bort</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1504274.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1504274</wfw:commentRss><description>Is there a way to find out which control triggered the partial postback within the updatepanel?</description></item><item><title>Re: how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1503667.aspx</link><pubDate>Wed, 20 Dec 2006 15:17:22 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1503667</guid><dc:creator>bogdanb</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1503667.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1503667</wfw:commentRss><description>&lt;p&gt;Instead of interogating the ScriptManager we can interogate each UpdatePanel's IsInPartialRendering property to know if an update panel is part of the asynchronous postback. Maybe you can figure a way around this property instead.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Bogdan&amp;nbsp;&lt;/p&gt;</description></item><item><title>how to get which UpdatePanel has posted</title><link>http://forums.asp.net/thread/1503433.aspx</link><pubDate>Wed, 20 Dec 2006 12:15:06 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1503433</guid><dc:creator>Bort</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1503433.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=1007&amp;PostID=1503433</wfw:commentRss><description>&lt;p&gt;With partial page updates it becomes more feasible to create pages with no viewstate, however this requires a bit trickier coding. I have a DropDownList control that&amp;nbsp;I need to rebind every time I am refreshing the UpdatePanel that&amp;nbsp;contains it. The first thought is to put the&amp;nbsp;binding process&amp;nbsp;in the event handler of the item that caused the partial postback. However, since this occurs in the pipeline after the DropDown's selected value is applied, the selected value is lost. Thus the binding of the DropDown has to happen in the Page_Init stage. But at this stage I don't have the event yet unless you examine the raw posted data (ugly). It would be nice if the ScriptManager could be interogated on post back to tell us which UpdatePanel&amp;nbsp;caused the partial post. Then in the Page_Init I can say "If the UpdatePanel doing the posting contains my DropDown then&amp;nbsp;do the binding". I have not seen any way to get a reference of the UpdatePanel that contains the control that triggered the partial post back. If it exists I would like to know.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;</description></item></channel></rss>