This documentation is archived and is not being maintained.

BaseDataList.IsBindableType Method

Determines whether the specified data type is bindable to a list control that derives from the BaseDataList class.

[Visual Basic]
Public Shared Function IsBindableType( _
   ByVal type As Type _
) As Boolean
[C#]
public static bool IsBindableType(
 Type type
);
[C++]
public: static bool IsBindableType(
 Type* type
);
[JScript]
public static function IsBindableType(
   type : Type
) : Boolean;

Parameters

type
A System.Type object that contains the data type to test.

Return Value

true if the specified data type is bindable to a list control that derives from the BaseDataList class; otherwise, false.

Remarks

Use the IsBindableType static method to determine whether the specified data type is bindable to a list control that inherits from the BaseDataList class. The supported data types are System.Boolean, System.Byte, System.SByte, System.Int16, System.UInt16, System.Int32, System.UInt32, System.Int64, System.UInt64, System.Char, System.Double, System.Single, System.DateTime, System.Decimal, and System.String.

Example

[Visual Basic] 

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>
   <script runat="server">
 
      Function CreateDataSource() As ICollection 
      
         ' Create sample data for the DataGrid control.
         Dim dt As DataTable = New DataTable()
         Dim dr As DataRow
 
         ' Define the columns of the table.
         dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
         dt.Columns.Add(New DataColumn("StringValue", GetType(string)))
         dt.Columns.Add(New DataColumn("CurrencyValue", GetType(double)))
 
         ' Populate the table with sample values.
         Dim i As Integer

         For i = 0 to 8 
        
            dr = dt.NewRow()
 
            dr(0) = i
            dr(1) = "Item " & i.ToString()
            dr(2) = 1.23 * (i + 1)
 
            dt.Rows.Add(dr)

         Next i
 
         Dim dv As DataView = New DataView(dt)
         Return dv

      End Function
 
      Sub Page_Load(sender As Object, e As EventArgs) 
 
         ' Load sample data only once when the page is first loaded.
         If Not IsPostBack Then 
  
            ' Retrieve sample data.
            Dim Source As DataView = CreateDataSource()


            ' Bind the data source to the DataGrid control if each column in 
            ' the data source contains a data type that is compatible with the 
            ' DataGrid; Otherwise, display an error message. 
            If ValidateSourceTypes(Source) Then

               ItemsGrid.DataSource = Source
               ItemsGrid.DataBind()

            Else

               Message.Text = "The data source is not compatible with the DataGrid control."

            End If

         End If

      End Sub

      Function ValidateSourceTypes(Source As DataView) As Boolean
       
         ' Test the data type of each column in the data source to make 
         ' sure it is compatible with the DataGrid control.

         ' Initialize the success flag to True.
         Dim Success As Boolean = True

         ' Iterate through each column of the data source and test the 
         ' data type for compatibility with the DataGrid control.
         Dim column As DataColumn
           
         For Each column In Source.Table.Columns

            If Not BaseDataList.IsBindableType(column.DataType) Then
         
               Success = False
            
            End If

         Next

         Return Success

      End Function

   </script>
 
<body>
 
   <form runat=server>
 
      <h3>BaseDataList IsBindableType Example</h3>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           GridLines="Both"
           AutoGenerateColumns="true"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle> 
 
      </asp:DataGrid>

      <br><br>

      <asp:Label id="Message" 
           runat="server"/>       

   </form>
 
</body>
</html>


[C#] 

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>
   <script runat="server">
 
      DataView CreateDataSource() 
      {
      
         // Create sample data for the DataGrid control.
         DataTable dt = new DataTable();
         DataRow dr;
 
         // Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
 
         // Populate the table with sample values.
         for (int i = 0; i < 9; i++) 
         {
            dr = dt.NewRow();
 
            dr[0] = i;
            dr[1] = "Item " + i.ToString();
            dr[2] = 1.23 * (i + 1);
 
            dt.Rows.Add(dr);
         }
 
         DataView dv = new DataView(dt);
         return dv;
      }
 
      void Page_Load(Object sender, EventArgs e) 
      {
 
         // Load sample data only once when the page is first loaded.
         if (!IsPostBack) 
         {

            // Retrieve sample data.
            DataView Source = CreateDataSource();


            // Bind the data source to the DataGrid control if each column  
            // in the data source contains a data type that is compatible  
            // with the DataGrid; otherwise, display an error message. 
            if(ValidateSourceTypes(Source))
            {

               ItemsGrid.DataSource = Source;
               ItemsGrid.DataBind();

            }
            else
            {

               Message.Text = "The data source is not compatible with the DataGrid control.";

            }

         }

      }

      bool ValidateSourceTypes(DataView Source)
      {
       
         // Test the data type of each column in the data source to make 
         // sure it is compatible with the DataGrid control.

         // Initialize the success flag to true.
         bool Success = true;

         // Iterate through each column of the data source and test the 
         // data type for compatibility with the DataGrid control. 
         foreach(DataColumn column in Source.Table.Columns)
         {
            if(!BaseDataList.IsBindableType(column.DataType))
            {
               Success = false;
            }
         }

         return Success;

      }

   </script>
 
<body>
 
   <form runat=server>
 
      <h3>BaseDataList IsBindableType Example</h3>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           GridLines="Both"
           AutoGenerateColumns="true"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle> 
 
      </asp:DataGrid>

      <br><br>

      <asp:Label id="Message" 
           runat="server"/>       

   </form>
 
</body>
</html>

[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 2000, Windows XP Professional, Windows Server 2003 family

See Also

BaseDataList Class | BaseDataList Members | System.Web.UI.WebControls Namespace | System.Type | System.DateTime | System.Decimal | Type.IsPrimitive | System.Boolean | System.Byte | System.SByte | System.Int16 | System.UInt16 | System.Int32 | System.UInt32 | System.Int64 | System.UInt64 | System.Char | System.Double | System.Single | System.DateTime | System.Decimal | System.String

Show: