BaseDataList.DataMember Property

Definition

Gets or sets the specific data member in a multimember data source to bind to a data listing control.

public:
 property System::String ^ DataMember { System::String ^ get(); void set(System::String ^ value); };
public string DataMember { get; set; }
[System.Web.UI.Themeable(false)]
public string DataMember { get; set; }
member this.DataMember : string with get, set
[<System.Web.UI.Themeable(false)>]
member this.DataMember : string with get, set
Public Property DataMember As String

Property Value

A data member from a multimember data source. The default value is Empty.

Attributes

Examples

The following code example demonstrates how to use the DataMember property to specify which table in a DataSet object to bind to a DataGrid control.


<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace = "System.Data"  %>

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

<head runat="server">
    <title> BaseDataList DataMember Example </title>
<script runat="server">

      // Create sample data for the DataGrid control with two tables, 
      // Employee and Customer.
      DataSet CreateDataSet()
      {
    
         // Create a table to store employee values.
         DataTable EmployeeTable = new DataTable("Employee");
         DataRow TempDataRow;
   
         // Define the columns for the Employee table.
         EmployeeTable.Columns.Add(
            new DataColumn("EmployeeName", typeof(string)));
         EmployeeTable.Columns.Add(
            new DataColumn("EmployeeID", typeof(int)));

         // Populate the Employee table.
         for (int i=1; i<=5; i++) 
         {
            TempDataRow = EmployeeTable.NewRow();
            TempDataRow[0] = "Employee " + i.ToString();
            TempDataRow[1] = (i+1700);

            EmployeeTable.Rows.Add(TempDataRow);
         }

         // Create a table to store customer values.
         DataTable CustomerTable = new DataTable("Customer");

         // Define the columns for the Customer table.
         CustomerTable.Columns.Add(
            new DataColumn("CustomerName", typeof(string)));
         CustomerTable.Columns.Add(
            new DataColumn("CustomerID", typeof(int)));

         // Populate the Customer table.
         for (int i=1; i<=5; i++) 
         {
            TempDataRow = CustomerTable.NewRow();
            TempDataRow[0] = "Customer " + i.ToString();
            TempDataRow[1] = (i+1700);

            CustomerTable.Rows.Add(TempDataRow);
         }

         // Create a DataSet and add the Employee and Customer tables.
         DataSet ds = new DataSet();
         ds.Tables.Add(EmployeeTable);
         ds.Tables.Add(CustomerTable);

         return ds;

      }
             
      void Page_Load(Object sender, EventArgs e) 
      {

         // The data source only needs to be bound to the DataList  
         // control the first time the page is accessed.    
         if(!IsPostBack)
         {

            // Create the sample data for the DataList control.
            ItemsGrid.DataSource = CreateDataSet();

            // The data source in this example contains multiple tables. 
            // Specify which table to display in the DataList control. 
            ItemsGrid.DataMember = "Customer";

            // Bind the data source to the control.
            ItemsGrid.DataBind();

         }

      }

      void Index_Change(Object sender, EventArgs e) 
      {

         // Create the sample data for the DataList control.
         ItemsGrid.DataSource = CreateDataSet();

         // The data source in this example contains multiple tables. 
         // Specify which table to display in the DataList control 
         // based on the user's selection from the DropDownList control. 
         ItemsGrid.DataMember = SourceList.SelectedItem.Text;

         // Bind the data source to the control. 
         ItemsGrid.DataBind();

      }

   </script>

</head>
<body>

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

      <h3> BaseDataList DataMember Example </h3>
      
      <asp:DataGrid id="ItemsGrid"
           AutoGenerateColumns="True" 
           runat="server">

         <headerstyle backcolor="#00aaaa"/>
</asp:DataGrid>

      <br /><br />

      Select the data source: <br />

      <asp:DropDownList id="SourceList"
           AutoPostBack="True"
           OnSelectedIndexChanged="Index_Change"
           runat="server">

         <asp:Listitem Selected="True">Customer</asp:Listitem>
         <asp:Listitem>Employee</asp:Listitem>

      </asp:DropDownList>

   </form>
 
</body>

</html>

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace = "System.Data"  %>

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

<head runat="server">
    <title> BaseDataList DataMember Example </title>
<script runat="server">

      ' Create sample data for the DataGrid control with two tables,
      ' Employee and Customer.
      Function CreateDataSet() As DataSet
    
         ' Create a table to store employee values.
         Dim EmployeeTable As DataTable = New DataTable("Employee")
         Dim TempDataRow As DataRow
   
         ' Define the columns for the Employee table.
         EmployeeTable.Columns.Add( _
            New DataColumn("EmployeeName", GetType(String)))
         EmployeeTable.Columns.Add( _
            New DataColumn("EmployeeID", GetType(Integer)))

         ' Populate the Employee table.
         Dim i As Integer

         For i=1 To 5 
         
            TempDataRow = EmployeeTable.NewRow()
            TempDataRow(0) = "Employee " & i.ToString()
            TempDataRow(1) = (i+1700)

            EmployeeTable.Rows.Add(TempDataRow)

         Next

         ' Create a table to store customer values.
         Dim CustomerTable As DataTable = New DataTable("Customer")

         ' Define the columns for the Customer table.
         CustomerTable.Columns.Add( _
            New DataColumn("CustomerName", GetType(String)))
         CustomerTable.Columns.Add( _
            New DataColumn("CustomerID", GetType(Integer)))

         ' Populate the Customer table.
         For i=1 To 5  

            TempDataRow = CustomerTable.NewRow()
            TempDataRow(0) = "Customer " & i.ToString()
            TempDataRow(1) = (i+1700)

            CustomerTable.Rows.Add(TempDataRow)
         
         Next

         ' Create a DataSet and add the Employee and Customer tables.
         Dim ds As DataSet = New DataSet()
         ds.Tables.Add(EmployeeTable)
         ds.Tables.Add(CustomerTable)

         Return ds

      End Function
             
      Sub Page_Load(sender As Object, e As EventArgs) 

         ' The data source only needs to be bound to the DataList  
         ' control the first time the page is accessed.    
         If Not IsPostBack Then

            ' Create the sample data for the DataList control.
            ItemsGrid.DataSource = CreateDataSet()

            ' The data source in this example contains multiple tables.  
            ' Specify which table to display in the DataList control. 
            ItemsGrid.DataMember = "Customer"

            ' Bind the data source to the control.
            ItemsGrid.DataBind()

         End If

      End Sub

      Sub Index_Change(sender As Object, e As EventArgs) 

         ' Create the sample data for the DataList control.
         ItemsGrid.DataSource = CreateDataSet()

         ' The data source in this example contains multiple tables. 
         ' Specify which table to display in the DataList control 
         ' based on the user's selection from the DropDownList control. 
         ItemsGrid.DataMember = SourceList.SelectedItem.Text

         ' Bind the data source to the control. 
         ItemsGrid.DataBind()

      End Sub

   </script>

</head>
<body>

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

      <h3> BaseDataList DataMember Example </h3>
      
      <asp:DataGrid id="ItemsGrid"
           AutoGenerateColumns="True" 
           runat="server">

         <headerstyle backcolor="#00aaaa"/>
</asp:DataGrid>

      <br /><br />

      Select the data source: <br />

      <asp:DropDownList id="SourceList"
           AutoPostBack="True"
           OnSelectedIndexChanged="Index_Change"
           runat="server">

         <asp:Listitem Selected="True">Customer</asp:Listitem>
         <asp:Listitem>Employee</asp:Listitem>

      </asp:DropDownList>

   </form>
 
</body>

</html>

Remarks

Use the DataMember property to specify a member from a multimember data source to bind to the list control. For example, if you have a data source with more than one table specified in the DataSource property, use the DataMember property to specify which table to bind to a data listing control.

This property cannot be set by themes or style sheet themes. For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

Applies to

See also