asp tutorials, asp.net tutorials, sample code, and Microsoft news from 15Seconds
Data Access  |   Troubleshooting  |   Security  |   Performance  |   ADSI  |   Upload  |   Email  |   Control Building  |   Component Building  |   Forms  |   XML  |   Web Services  |   ASP.NET  |   .NET Features  |   .NET 2.0  |   App Development  |   App Architecture  |   IIS  |   Wireless
 
Pioneering Active Server
 Power Search








Active News
15 Seconds Weekly Newsletter
• Complete Coverage
• Site Updates
• Upcoming Features

More Free Newsletters
Reference
News
Articles
Archive
Writers
Code Samples
Components
Tools
FAQ
Feedback
Books
Links
DL Archives
Community
Messageboard
List Servers
Mailing List
WebHosts
Consultants
Tech Jobs
15 Seconds
Home
Site Map
Press
Legal
Privacy Policy
internet.commerce














internet.com
IT
Developer
Internet News
Small Business
Personal Technology
International

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

HardwareCentral
Compare products, prices, and stores at Hardware Central!

ASP.NET Feature Saves Development Time
By Rick Liddle
Rating: 3.2 out of 5
Rate this article


  • email this article to a colleague
  • suggest an article

    Introduction

    ASP.NET provides Web developers with the ability to efficiently handle many tedious tasks that can eat up an application's development time. To be able to effectively maintain state, server controls, and debugging through the Trace object are just a few examples of its advantages. At least 75% of my development time involves gathering a little bit of information from the user, querying the database, and returning some data based on that query. The easiest way to do that usually involves splitting a page into a few functions that return a string of HTML to the browser using Response.Write().

    With ASP.NET's new server controls, it's easier to create output to be placed into an HTML template. This also allows for the separation of business logic and user interface. Initial information about ASP.NET showed how easy this is to do, but it seemed to share one downfall: the form was always redisplayed with the output. In some cases, this is fine, or even desirable, but in most instances, we don't want the user to see the form again. Putting the form and the output in two different pages causes a loss of functionality, as the controls are no longer accessible.

    MSDN documentation on the server control Microsoft calls a "panel" says the panel loosely corresponds to the HTML <DIV> tag. At first glance it doesn't seem to offer much functionality. The key to its worth is that it inherits the "visible" property from the "Control" class. Setting visible equal to "False" prevents the nested contents of the panel from being returned to the browser, but it does not prevent ASP.NET from maintaining the state of the controls nested within a panel. This means you can gather information from the user in several steps and still refer to the controls, even after multiple posts.

    Sample Code

    The code below demonstrates use of the panel.

    
    <%@ Page Language="vb" %>
    
    <script language="vb" runat=server>
    
            Sub Page_Load(s as object, e as eventargs)
                    if not page.ispostback then
                            pnlStage1.visible = true
                    End if
            End Sub
    
            Sub ShowStage2(s as object, e as eventargs)
                    pnlStage1.visible = false
                    pnlStage2.visible = true
            End Sub
    
            Sub ShowStage3(s as object, e as eventargs)
                    pnlStage2.visible = false
                    pnlStage3.visible = true
                    lbloutput.text = "Hello, " & txtName.Text & ". How are things in " & txtCountry.text & "?"
            End Sub
    
    </script>
    
    <html>
    <head>
    </head>
    <body>
    
            <form id="panel" method="post" runat="server">
    
                    <asp:panel runat=server id=pnlStage1 visible=False>
                            What is your name?<br>
                            <asp:textbox runat=server id=txtName /><br>
                            <asp:button runat=Server id=btnSubmit1 onclick=ShowStage2 text=submit />
                    </asp:panel>
    
                    <asp:panel runat=server id=pnlStage2 visible=False>
                            What country do you live in?<br>
                            <asp:textbox runat=server id=txtCountry /> <br>
                            <asp:button runat=server id=btnSubmit2 onclick=ShowStage3 text=submit />
                    </asp:panel>
    
                    <asp:panel runat=server id=pnlStage3 visible=false>
                            <asp:label runat=Server id=lblOutput />
                    </asp:panel>
    
            </form>
    
    </body>
    </html>
    
    

    Explanation

    The bottom half of the page is simply the framework for the page, and is a mix of HTML and server controls to display our form and its output. Note that each panel's visible attribute is initially false, and that each button's onClick event fires a corresponding Sub.

    The code enclosed in the <script> tags at the top of the page is what we're interested in. It's fairly simple and straightforward. The Page_Load() sub checks to see if the page has been posted. If it hasn't, the page displays the first panel. On each subsequent submit, the sub that corresponds to the appropriate submit button is executed. Each sub sets the visibility for the applicable panels. In the last sub, the controls have maintained state, as evidenced by the fact that txtName is still accessible and its text property still reflects the changes we made two posts back.

    Conclusion

    Obviously, this is an overly simple example and doesn't directly apply to a realistic application. Its purpose is to demonstrate how the panel control can be used to gather information from users in one or more steps and then display some sort of result based on that information. The panel control should allow you to develop Web applications more efficiently, and allow you to make use of programmatic interaction with the new server controls.

    About the Author

    Rick Liddle is a consultant with Adjoined Technologies (www.adjoined.com) and has been involved in ASP, Visual Basic, and SQL Server development for about two years. Rick lives and works in Dallas, and can be reached at rliddle@adjoined.com.

  • Rate This Article
    Not HelpfulMost Helpful
    1 2 3 4 5
    Other Articles
    Apr 21, 2005 - Building a FAQ Module for the ASP.NET Community Starter Kit
    This sample chapter from Packt Publishing's "Building Websites with the ASP.NET Community Starter Kit" illustrates how to build a new module on top of the existing code in the ASP.NET Community Starter Kit (CSK). Using a Frequently Asked Questions (FAQ) module as an example, it shows how creating a new module allows you to add entirely new features which integrate seamlessly with the rest of the framework.
    [Read This Article]  [Top]
    Oct 20, 2004 - Beyond the DataGrid: An Architectural View of the Data Source Model in ASP.NET 1.x and 2.0
    Dino Esposito discusses the differences between the DataGrid control in version 1.x and 2.0 of ASP.NET. In the process, he also builds an improved version of the 1.x control that can get you some of the new 2.0 features today.
    [Read This Article]  [Top]
    Aug 25, 2004 - Developing Web Parts with the ICellProvider Interface
    Most default SharePoint Server Web Parts can be connected across organizations. The second article in this series shows how to develop connectable Web Parts that provide information to other Web Parts.
    [Read This Article]  [Top]
    Aug 4, 2004 - Accessibility Improvements in ASP.NET 2.0 - Part 2
    Alex Homer continues to highlight some of the new ASP.NET 2.0 accessibility features. These features make it easier for visually impaired users to view and navigate Web sites and provide better support for alternative types of browsers and user agents.
    [Read This Article]  [Top]
    Jul 30, 2004 - Connectable Web Parts in SharePoint Portal Server 2003 - Part 1
    Most default SharePoint Server Web Parts can be connected across organizations. The first article in this series explains how to connect existing Web Parts using the connection Interface classes in the SharePoint architecture.
    [Read This Article]  [Top]
    Jul 27, 2004 - Accessibility Improvements in ASP.NET 2.0 - Part 1
    Alex Homer highlights some of the new ASP.NET 2.0 accessibility features. These features make it easier for visually impaired users to view and navigate Web sites and provide better support for alternative types of browsers and user agents.
    [Read This Article]  [Top]
    Jun 30, 2004 - Simplified and Extended Data Binding Syntax in ASP.NET 2.0
    Alex Homer discusses the simplification of, and extensions to, the ASP.NET 1.x data binding syntax, the new two-way data binding syntax for updating data sources, and the new syntax for binding to XML data in ASP.NET 2.0.
    [Read This Article]  [Top]
    May 18, 2004 - ASP.NET 2.0 Caching Features
    This article examines some of the new and exciting caching features in ASP.NET 2.0 and shows how to implement them in Web applications.
    [Read This Article]  [Top]
    May 11, 2004 - SharePoint Security and .NET Impersonation
    When implementing custom components that require access to restricted resources, implicit impersonation must be used. Jay Nathan shows how to create a class that makes using .NET Impersonation a snap.
    [Read This Article]  [Top]
    May 4, 2004 - Creating a Flexible Configuration Section Handler
    Jeff Gonzalez demonstrates how to create a flexible configuration section handler using C#. He provides a summary background of the .NET configuration system, explains why the system is useful, and shows how it can be extended.
    [Read This Article]  [Top]
    Mailing List
    Want to receive email when the next article is published? Just Click Here to sign up.

    Support the Active Server Industry



    JupiterOnlineMedia

    internet.comearthweb.comDevx.commediabistro.comGraphics.com

    Search:

    Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

    Jupitermedia Corporate Info


    Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

    Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

    Solutions
    Whitepapers and eBooks
    Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
    Microsoft Article: 7.0, Microsoft's Lucky Version?
    Microsoft Article: Hyper-V--The Killer Feature in Windows Server 2008
    Avaya Article: How to Feed Data into the Avaya Event Processor
    Microsoft Article: Install What You Need with Windows Server 2008
    HP eBook: Putting the Green into IT
    Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
    Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
    Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
    Avaya Article: Setting Up a SIP A/S Development Environment
    IBM Article: How Cool Is Your Data Center?
    Microsoft Article: Managing Virtual Machines with Microsoft System Center
    HP eBook: Storage Networking , Part 1
    Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
    MORE WHITEPAPERS, EBOOKS, AND ARTICLES
    Webcasts
    Intel Video: Are Multi-core Processors Here to Stay?
    On-Demand Webcast: Five Virtualization Trends to Watch
    HP Video: Page Cost Calculator
    Intel Video: APIs for Parallel Programming
    HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
    Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
    MORE WEBCASTS, PODCASTS, AND VIDEOS
    Downloads and eKits
    Sun Download: Solaris 8 Migration Assistant
    Sybase Download: SQL Anywhere Developer Edition
    Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
    Red Gate Download: SQL Compare Pro 6
    Iron Speed Designer Application Generator
    MORE DOWNLOADS, EKITS, AND FREE TRIALS
    Tutorials and Demos
    How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
    eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
    IBM Article: Collaborating in the High-Performance Workplace
    HP Demo: StorageWorks EVA4400
    Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
    Microsoft How-to Article: Get Going with Silverlight and Windows Live
    MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES