DetailsView Control in ASP.Net: Part 1

Introduction

The DetailsView Control enable us to work with a single data item at a time. This control enable us to display, edit, insert, and delete data items such as database records. Furthermore, it also enable us to page forward and backward through a set of data items. The DetailsView control always renders each field in a separate HTML table row.

Displaying Data in DetailsView

A DetailsView control renders an HTML table that displays the contents of a single database record. The DetailsView supports both declarative and programmatic databinding.

Declarative Databinding

The example given below displays a record from the PRO_LIST database table, using declarative databinding.

DetailView1.gif

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="DetailsView (Declarative).aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<script runat="server">  

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

<head id="Head1" runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

   <div> 

    <asp:DetailsView

        id="dtlProducts"

        DataSourceID="SqlDataSource1"

        Runat="server" /> 

        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>"

            ProviderName="<%$ ConnectionStrings:DatabaseConnectionString1.ProviderName %>"

            SelectCommand="SELECT [ID], [TITLE], [COMPANY], [PRICE], [AVAILABLITY] FROM [PRO_LIST]">

        </asp:SqlDataSource> 

    </div>

    </form>

</body>

</html>

In above example, the SQL Select statement associated with the SqlDataSource control retrieves the first product from the PRO_LIST database table. The DetailsView control is bound to the SqlDataSource control through its DataSourceID property.

Programmatically Databinding

We also can bind a DetailsView control programmatically to a data source. The page given below contains a DetailsView that is bound to a collection of products.

<%@ Page Language="VB" %>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<script runat="server"> 

    Public Class Product

        Public id As String

        Public name As String

        Public company As Boolean

        Public ReadOnly Property id_id() As String

            Get

                Return id

            End Get

        End Property 

        Public ReadOnly Property name_name() As String

            Get

                Return name

            End Get

        End Property 

        Public ReadOnly Property company_company() As String

            Get

                Return company

            End Get

        End Property 

        Public Sub New(ByVal id_id As String, ByVal name_name As String, ByVal company_company As String)

            id = id_id

            name = name_name

            company = company_company

        End Sub

    End Class 

    Private Sub Page_Load()       

        Dim NewProducts As New Product("1", "HDD", "Intel")

        Dim pro As New ListBox(Of Product)()

        pro.Add(NewProducts) 

        dtlProducts.DataSource = pro

        dtlProducts.DataBind()

    End Sub 

</script

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>  

    <asp:DetailsView

        id="dtlProducts"

        Runat="server" /> 

    </div>

    </form>

</body>

</html>

In above example, an Product class is defined, which contains properties for the product like id, name and company. In the Page_Load() method, a new product is created and added to a generic collection. This collection is bound to the DetailsView control.

Note: Continue in Next Part.
 


Similar Articles