Use action (Event) in custom control : Action « Custom Controls « ASP.NET Tutorial

ASP.NET Tutorial
1. ASP.Net Instroduction
2. Language Basics
3. ASP.net Controls
4. HTML Controls
5. Page Lifecycle
6. Response
7. Collections
8. Validation
9. Development
10. File Directory
11. Sessions
12. Cookie
13. Cache
14. Custom Controls
15. Profile
16. Configuration
17. LINQ
18. ADO.net Database
19. Data Binding
20. Ajax
21. Authentication Authorization
22. I18N
23. Mobile
24. WebPart
25. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
ASP.NET Tutorial » Custom Controls » Action 
14. 3. 1. Use action (Event) in custom control
<%@ Page Language="VB" %>
<%@ Register TagPrefix="ACME" Namespace="MyCustomControls" Assembly="CustomControls"%>

<script runat="server">
   sub Submit(Sender as Object, e as EventArgs)
      'do nothing
   end sub
   
   sub ChangeIt(Sender as Object, e as EventArgs)
      Response.write("Event handled!")
   end sub
</script>

<html><body>
   <form runat=server>
      The custom control produces the following output:
      <ACME:CustomControl id="MyControl" runat="server"
         Message="Hello world!" 
         OnTextChanged="ChangeIt" />
      <asp:Button runat="server"
         Text="Submit"
         OnClick="Submit" />
   </form>
</body></html>


File: CustomControl.cs

using System;
using System.Web;
using System.Web.UI;
using System.Collections.Specialized;

namespace MyCustomControls {
   public class CustomControl : Control, IPostBackDataHandler {
      public event EventHandler TextChanged;

      protected virtual void OnTextChanged(EventArgs e) {
         TextChanged(this, e);
      }
      
      public bool LoadPostData(String PostDataKey, NameValueCollection Values) {
         string strOldValue = this.Message;
         string strNewValue = Values[PostDataKey];
         if (strOldValue != strNewValue) {
            this.Message = strNewValue;
            return true;
         }
         return false;
      }
      
      public void RaisePostDataChangedEvent() {
         OnTextChanged(EventArgs.Empty);
      }
      
      public string Message {
         get {
            return ViewState["Message"].ToString();
         }
         set {
            ViewState["Message"= value;
         }
      }
      
      protected override void Render(HtmlTextWriter Output) {
         Output.Write("<input name=" this.UniqueID + " type=text value=\"" this.Message + "\">");
      }
   }

}

File: CustomControl.vb

Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Collections.Specialized

Namespace MyCustomControls
   Public Class CustomControl : Inherits Control : Implements IPostBackDataHandler
      public Event TextChanged(obj as object, e as eventargs)
      protected sub OnTextChanged(e as EventArgs)
         RaiseEvent TextChanged(Me, e)
      end sub
      
      Public Function LoadPostData(PostDataKey As String, Values As NameValueCollectionAs Boolean Implements IPostBackDataHandler.LoadPostData
         dim strOldValue as String = Me.Message
         dim strNewValue as String = Values(postDataKey)
         if not strOldValue = strNewValue
            Me.Message = strNewValue
            return true
         end if
         return false
      End Function
      
      Public Sub RaisePostDataChangedEvent() Implements IPostBackDataHandler.RaisePostDataChangedEvent
         OnTextChanged(EventArgs.Empty)
      end sub
      
      public property Message as string
         Get
            Message = ViewState("Message").ToString
         End Get
         Set
            ViewState("Message"= value
         End Set
      end property
      
      Protected Overrides Sub Render(Output as HtmlTextWriter)
         Output.Write("<input name=" & Me.UniqueID & " type=text value=""" & Me.Message & """>")
      End Sub
   End Class

End Namespace
14. 3. Action
14. 3. 1. Use action (Event) in custom control
14. 3. 2. Exposing Events from a User Control
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.