Home > SOA Tips > .NET Developer > Declare a simple custom control
SOA Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

.NET DEVELOPER

Declare a simple custom control


Rob Howard and Steven Smith
11.18.2003
Rating: -2.50- (out of 5)


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   



.NET Developer Tip
(Receive this column in your inbox,
click Edit your Profile to subscribe.)

Declare a simple custom control
Rob Howard and Steven Smith

One of the most powerful features of ASP.NET is its support for custom server controls and components. ASP.NET ships with dozens of built-in controls, and developers can easily extend these controls or write their own controls from scratch. This tip, which is excerpted from InformIT, talks about custom controls in ASP.net, and offers an example of how to declare one.


One of the most powerful features of ASP.NET is its support for custom server controls and components. ASP.NET ships with dozens of built-in controls, and developers can easily extend these controls or write their own controls from scratch. Server controls can be used to encapsulate complex user interface logic or business rules, and can benefit from design-time support like drag-and-drop and toolbox support and property builders. Custom controls pick up where User Controls leave off, providing greater flexibility, reusability, and a better design time experience, but with some added complexity.

This example demonstrates how easy it is to create custom controls in ASP.NET, especially when compared to COM components. You simply create a class that inherits from System.Web.UI.Control or System.Web.UI.WebControls.WebControl and give it whatever properties and methods you need. In Visual Studio .NET, you would normally do this by creating a new Web Control Library project. You override its Render() method to control its output, and you have a very simple yet powerful tool for encapsulating and reusing user interface logic.

The Recipe0301vb class is as follows:

Imports System.ComponentModel
Imports System.Web.UI
Namespace AspNetCookbook

  <DefaultProperty("Text"), ToolboxData("<{0}:Recipe0301vb 
    runat=server></{0}:Recipe0301vb>")> Public Class Recipe0301vb
    Inherits System.Web.UI.WebControls.WebControl

    Dim _text As String

    <Bindable(True), Category("Appearance"), 
    DefaultValue("")> Property [Text]() As String
      Get
        Return _text
      End Get

      Set(ByVal Value As String)
        _text = Value
      End Set
    End Property

    Protected Overrides Sub Render(
      ByVal output As System.Web.UI.HtmlTextWriter)
      output.Write([Text])
    End Sub

  End Class
End Namespace

To reference a custom control on a Web Form, you need to add a Register directive to the page, and specify three parameters. The TagPrefix is used for all controls from this namespace and assembly when they are declared on the page, and can be anything but asp, which is reserved for the built-in Web Controls that ASP.NET provides. Next, the namespace in which the controls reside must be specified. Finally, the name of the assembly, without any path information or the .DLL extension, is specified for the Assembly parameter. An example of this follows:

<%@ Page language="VB" %>
<%@ Register TagPrefix="AspNetCookbook" Namespace="AspNetCookbook" 
Assembly="RecipesVB" %>
...
<form id="Form1" method="post" runat="server">
 <AspNetCookbook:Recipe0301vb id="Recipe0301vb1" runat="server" />
</form>

Note that in Visual Studio .NET, a default namespace with the same name as the project is automatically prefixed to all Visual Basic class names. This is a frequent source of confusion and is inconsistent with how default namespaces are handled in C#, where they are inserted into each class file as a visible namespace. You can turn off this default behavior by setting the default namespace to an empty string in the Project Properties dialog box. You can determine the full namespace of a class by using the ILDASM.EXE command-line tool on the generated assembly, or by going into the class view utility in Visual Studio .NET.


To read the entire article from which this tip comes, click over to InformIT. No registration required, no info to give up. Just good info to get for yourself.

For More Information:

  • Looking for free research? Browse our comprehensive White Papers section by topic, author or keyword.
  • Are you tired of technospeak? The Web Services Advisor column uses plain talk and avoids the hype.
  • For insightful opinion and commentary from today's industry leaders, read our Guest Commentary columns.
  • Hey Codeheads! Start benefiting from these time-saving XML Developer Tips and .NET Developer Tips.

  • Visit our huge Best Web Links for Web Services collection for the freshest editor-selected resources.
  • Visit Ask the Experts for answers to your Web services, SOAP, WSDL, XML, .NET, Java and EAI questions.
  • Choking on the alphabet soup of industry acronyms? Visit our helpful Glossary for the latest industry lingo.
  • Couldn't attend one of our Webcasts? Don't miss out. Visit our archive to watch at your own convenience.
  • Discuss this article, voice your opinion or talk with your peers in the SearchWebServices Discussion Forums.

Rate this Tip
To rate tips, you must be a member of SearchSOA.com.
Register now to start rating these tips. Log in if you are already a member.




Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   



RELATED CONTENT
Platforms and Servers
Tracking down managed memory leaks
Handling exceptions in .NET
.NET Compact Framework graphics
The Data Access Application Block
Decision time: .NET or J2EE?
A great .NET resource: .Net2TheMax
Delegates vs. interfaces in .NET
Project structure best practices
Working with PDFs in a .NET environment
Displaying errors with the error provider

.NET Developer
Programming Indigo
DataSets and Web services don't mix
Security in .NET 2.0
Tracking down managed memory leaks
Handling exceptions in .NET
.NET Compact Framework graphics
The Data Access Application Block
A great .NET resource: .Net2TheMax
Delegates vs. interfaces in .NET
Project structure best practices

Microsoft .NET Web services
Microsoft preps .NET 4.0 - framework improves on REST, MVC, JQuery support
How do I balance throughput requirements and interoperability?
APM software traces transactions across tiers, technologies
How you can learn M Grammar for Oslo modeling
Legacy modernization opens Windows for publisher
Former .NET Web developers ride Ruby and Rails application framework
Microsoft Oslo at PDC: Dial 'M' for modeling language
Yahoo proxy fight looms
New Microsoft site for architects
LAMP coders go hybrid route
Microsoft .NET Web services Research

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
Common Language Infrastructure  (SearchSOA.com)
Visual J#  (SearchSOA.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary

DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



SOA Trends and Strategy - SOA Education, SOA Development, SOA Implementations
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2001 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts