Das Atlas (oder besser ASP.NET Ajax) UpdatePanel bietet die Möglichkeit, auf getriggerte Control-Events zu reagieren und sich entsprechend upzudaten.

   1:  <asp:Button ID="MyButton" runat="server" Text="Submit" />
   2:  <atlas:UpdatePanel ID="MyUpdatePanel" runat="server" Mode="Conditional">
   3:    <ContentTemplate>
   4:      <asp:Label ID="Message" runat="server"></asp:Label>
   5:    </ContentTemplate>
   6:    <Triggers>
   7:      <atlas:ControlEventTrigger ControlID="MyUsc" EventName="Click" />
   8:    </Triggers>
   9:  </atlas:UpdatePanel>
 
 
Was aber wenn der Event von einem UserControl getriggert werden soll? ID und Event angeben? The ControlID property of the trigger must reference a valid control wirds dann heissen...
 
Um UserControl-Events zu triggern, muss das Control das den Event im UserControl feuert registriert werden:
 
MyUserControl.ascx
 
   1:  <%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyUserControl.ascx.cs" Inherits="MyUserControl" %>
   2:  <asp:Button ID="MyButton" runat="server" Text="Click me" OnClick="MyButton_Click" />
 
MyUserControl.ascx.cs
 
   1:  public partial class MyUserControl : System.Web.UI.UserControl
   2:  {
   3:      public event CommandEventHandler Click;
   4:   
   5:      protected void Page_Load(object sender, EventArgs e)
   6:      {
   7:          Microsoft.Web.UI.ScriptManager scriptManager =
   8:              Microsoft.Web.UI.ScriptManager.GetCurrent(this.Page);
   9:          scriptManager.RegisterAsyncPostBackControl(MyButton);
  10:      }
  11:   
  12:      protected void MyButton_Click(object sender, EventArgs e)
  13:      {
  14:          if (Click != null)
  15:          {
  16:              Click(this, new CommandEventArgs("Click", MyButton));
  17:          }
  18:      }
  19:  }
 
Auf Zeile 7 - 9 geschieht das Wesentliche. Der ScriptManager der Host-Page wird geladen und über diesen das Button-Control als AsyncPostBack-Control registriert... und voilà, das war's dann auch schon.
 
Nicht viel Aufwand, dafür umso mehr Ertrag. Ohne Events lässt sich doch nur sehr beschränkt und unschön mit UserControls arbeiten - und so können diese auch einfach in Atlas äh ASP.NET Ajax verwendet werden.

Beispiel-Download:
UserControlEvent.zip (420.13 KB)