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
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