code_junkie

How can I get an UpdatePanel to intercept a CompositeControl's DropDownList

Nov 11th, 2011
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. <asp:UpdatePanel ID="UpdatePanel" runat="server">
  2. <ContentTemplate>
  3. <MyControl:Control ID="CustomControl" runat="server" />
  4. </ContentTemplate>
  5. </asp:UpdatePanel>
  6.  
  7. country.SelectedIndexChanged += new EventHandler(country_SelectedIndexChanged);
  8.  
  9. protected void country_SelectedIndexChanged(Object sender, EventArgs e)
  10. {
  11. states.DataSource = XXX;
  12. states.DataBind();
  13. }
  14.  
  15. public partial class CatchMyEvent : System.Web.UI.UserControl
  16. {
  17. public delegate void ChangedIndex(object sender, EventArgs e);
  18. public event ChangedIndex SelectedIndexChanged;
  19.  
  20. protected override void OnInit(EventArgs e)
  21. {
  22. base.OnInit(e);
  23. dropDownListThrow.SelectedIndexChanged += new EventHandler(dropDownListThrow_SelectedIndexChanged);
  24. labelOutput.Text = "no";
  25. }
  26.  
  27. public void dropDownListThrow_SelectedIndexChanged(object sender, EventArgs e)
  28. {
  29. labelOutput.Text = ((DropDownList)sender).SelectedItem.Text;
  30. if(SelectedIndexChanged != null)
  31. {
  32. SelectedIndexChanged(sender, e);
  33. }
  34. }
  35. }
  36.  
  37. <asp:AsyncPostBackTrigger ControlID="catchMyEventMain" EventName="SelectedIndexChanged" />
  38.  
  39. protected override void OnInit(EventArgs e)
  40. {
  41. base.OnInit(e);
  42. catchMyEventMain.SelectedIndexChanged += dropDownListThrow_SelectedIndexChanged;
  43. }
  44.  
  45. public void dropDownListThrow_SelectedIndexChanged(object sender, EventArgs e)
  46. {
  47. labelSelectedValue.Text = ((DropDownList)sender).SelectedItem.Text;
  48. }
  49.  
  50. ...
  51. if (DesignMode || Page == null) return;
  52.  
  53. var sm = ScriptManager.GetCurrent(Page);
  54. if (sm == null)
  55. {
  56. throw new MissingFieldException("The ScriptManager is needed on the page!");
  57. }
  58. sm.RegisterAsyncPostBackControl(<control which initiates async postback>);
Add Comment
Please, Sign In to add comment