Download MSDN Session

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Building Custom Controls
with ASP.NET and the
Microsoft .NET Framework
®
Rames Gantanant
Microsoft Regional Director, Thailand
[email protected]
What We Will Cover





Developing Web custom controls
Creating a control designer
Control rendering
Event handling
Developing composite controls
Session Prerequisites
Basic knowledge of C#
 Basic knowledge of EventHandling in
.NET
 Familiarity with the .NET Framework
 Understanding of object-oriented
programming
 Basic HTML / WYSIWYG experience

Level 200
So Why This Presentation?
Benefits of designing custom controls
 Code reuse
 Quick page development
 Make easy changes to the site through
controls

Agenda






Web user controls versus custom controls
Creating a simple Web custom control
Implementing a control designer for designtime rendering
Rendering methods and how to use them
Handling postback events
Developing a composite control
Agenda






Web user controls versus custom controls
Creating a simple Web custom control
Implementing a control designer for designtime rendering
Rendering methods and how to use them
Handling postback events
Developing a composite control
Web User Controls Versus
Custom Controls




Web user controls are compiled
dynamically at run time
Web user controls cannot be added to
the Toolbox
The only way to share a Web user
control between applications is to put a
separate copy in each application
Custom controls have full visual design
tool support for consumers
Creating a Simple Custom
Control



Inheriting from WebControl versus
Control
Consuming the control in a Web
application
Adding a custom property to the control
Demonstration 1
Creating a Simple
Custom Control
Agenda






Web user controls versus custom controls
Creating a simple Web custom control
Implementing a control designer for designtime rendering
Rendering methods and how to use them
Handling postback events
Developing a composite control
Creating a Simple Web
Custom Control



WebControl provides typical Web user
control properties
Adding the control and Web application
project within the same solution helps
with developing and debugging
The control can be added to the toolbox
and even to the global assembly cache,
allowing ease of use for multiple
developers
Creating a Simple Web
Custom Control

Creating an icon for the control helps
distinguish it when added to the toolbox
Agenda






Web user controls versus custom controls
Creating a simple Web custom control
Implementing a control designer for designtime rendering
Rendering methods and how to use them
Handling postback events
Developing a composite control
Demonstration 2
Implementing a
Control Designer for
Design-Time
Rendering
Implementing a Control
Designer for Design-Time
Rendering




System.Design.dll provides the base
class for design-time rendering
GetDesignTimeHtml() overrides the
default design-time rendering output
Design-time and run-time HTML output
are separate entities
Designer class is specified in the
controls attribute list
Agenda






Web user controls versus custom controls
Creating a simple Web custom control
Implementing a control designer for designtime rendering
Rendering methods and how to use them
Handling postback events
Developing a composite control
Demonstration 3
Rendering Methods
and How to Use
Them
Rendering Methods and
How to Use Them


Override the Render() method when
inheriting from Control
Override RenderContents() method
when inheriting from WebControl
Rendering Methods and
How to Use Them



Default “base-element” for a control is
the <span> element
Specify which base-class constructor
should be called when creating
instances of the derived class, such as
base(HtmlTextWriterTag.A) for an <a>
element
Use AddAttributesToRender() method to
add HTML attributes and styles to the
control
Agenda






Web user controls versus custom controls
Creating a simple Web custom control
Implementing a control designer for designtime rendering
Rendering methods and how to use them
Handling postback events
Developing a composite control
Demonstration 4
Handling Postback
Events
Handling Postback Events




IPostBackEventHandler defines the
method ASP.NET server controls must
implement to handle postback events
Define the click event
Invoke delegates registered with the
click event
Define the method of
IPostBackEventHandler that raises
change events
Handling Postback Events

Page.GetPostBackEventReference()
obtains a reference to a client-side
script function that causes, when
invoked, the server to post back to the
page
Agenda





Web user controls versus custom controls
Creating a simple Web custom control
Implementing a control designer for designtime rendering
Rendering methods and how to use them
Developing a composite control
Demonstration 5
Developing a
Composite Control
Developing a Composite
Control


INamingContainer interface identifies a
container control that creates a new ID
namespace within a Page object's
control hierarchy (that is, it will provide
a unique namespace for any server
controls that it contains in the .aspx file)
EnsureChildControls() determines
whether the server control contains
child controls. If it does not, it creates
child controls
Developing a Composite
Control

CreateChildControls() notifies server
controls that use composition-based
implementation to create any child
controls they contain in preparation for
posting back or rendering
Developing a Composite
Control
Main Differences Between a Web User
Control and a Custom Control



Minimal design-time support for
authoring
Authored programmatically in an objectoriented programming language that
targets the common language runtime
Compiled and persisted as an assembly
(.dll)
Session Summary



WebControl derives from Control and
exposes properties common to Web
user controls
Adding the control and Web application
project in the same solution makes it
easier to debug, rebuild, and test while
developing
The control can be added to the toolbox
and even to the global assembly cache
to make it easy for multiple developers
to use on different machines
Session Summary,
Continued


Composite controls are compiled and
persisted as an assembly (.dll)
RaisePostBackEvent enables a server
control to process an event raised when
a form is posted to the server
For More Information…

®
MSDN Web site at


msdn.microsoft.com
ASP.NET

www.asp.net
Microsoft, Windows, the Windows logo, MSDN, Visual Basic .NET, Visual Studio .NET, Microsoft Press, are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies
and products mentioned herein may be the trademarks of their respective owners.