Click here to Skip to main content
Click here to Skip to main content
Articles » Web Development » ASP.NET » Data » Downloads
 
Add your own
alternative version
Go to top

A Multipurpose Details Page Template in ASP.NET Dynamic Data

, 30 Dec 2009
A single page template that can replace all of the Details, Edit, and Insert page templates.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Web.DynamicData;

public partial class Details : System.Web.UI.Page
{
    protected MetaTable table;

    protected void Page_Init(object sender, EventArgs e)
    {
        dynamicDataManager.RegisterControl(commonDetailsView);
        switch (Request.Url.Segments[3])
        {
            case "Insert.aspx":
                commonDetailsView.AutoGenerateInsertButton = true;
                commonDetailsView.ChangeMode(DetailsViewMode.Insert);
                break;
            case "Edit.aspx":
                commonDetailsView.AutoGenerateEditButton = true;
                commonDetailsView.ChangeMode(DetailsViewMode.Edit);
                break;
            case "Details.aspx":
                commonDetailsView.AutoGenerateEditButton = true;
                commonDetailsView.AutoGenerateDeleteButton = true;
                commonDetailsView.ChangeMode(DetailsViewMode.ReadOnly);
                break;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        table = detailsDataSource.GetTable();
        Title = table.DisplayName;
        detailsDataSource.Include = table.ForeignKeyColumnsNames;
        ListHyperLink.NavigateUrl = table.ListActionPath;
    }

    protected void commonDetailsView_ItemDeleted(object sender, DetailsViewDeletedEventArgs e)
    {
        if (e.Exception == null || e.ExceptionHandled)
        {
            Response.Redirect(table.ListActionPath);
        }
    }

    protected void commonDetailsView_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
    {
        if (e.Exception == null || e.ExceptionHandled)
        {
            Response.Redirect(table.ListActionPath);
        }
    }

    protected void commonDetailsView_ItemCommand(object sender, DetailsViewCommandEventArgs e)
    {
        if (e.CommandName == DataControlCommands.CancelCommandName)
        {
            Response.Redirect(table.ListActionPath);
        }
    }
    protected void commonDetailsView_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
    {
        if (e.Exception == null || e.ExceptionHandled)
        {
            Response.Redirect(table.ListActionPath);
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under A Public Domain dedication

Share

About the Author

Brady Kelly
Founder Erisia Web Development
South Africa South Africa
I am a software developer in Johannesburg, South Africa. I specialise in C# and ASP.NET MVC, with SQL Server, with special fondness for MVC and jQuery. I have been in this business for about fifteen years, and am currently trying to learn WPF and MVVM from the bottom up, and somehow find a way to strengthen my creative faculties.
- Follow me on Twitter at @bradykelly
Follow on   Twitter

| Advertise | Privacy | Mobile
Web01 | 2.8.140916.1 | Last Updated 30 Dec 2009
Article Copyright 2009 by Brady Kelly
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid