BaseDataList.IsBindableType(Type) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bestimmt, ob der angegebene Datentyp an ein von der BaseDataList-Klasse abgeleitetes Listensteuerelement gebunden werden kann.
public:
static bool IsBindableType(Type ^ type);
public static bool IsBindableType (Type type);
static member IsBindableType : Type -> bool
Public Shared Function IsBindableType (type As Type) As Boolean
Parameter
Gibt zurück
true
, wenn der angegebene Datentyp an ein von der BaseDataList-Klasse abgeleitetes Listensteuerelement gebunden werden kann, andernfalls false
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die IsBindableType Eigenschaft verwendet wird, um festzustellen, ob Werte eines bestimmten Datentyps an ein DataGrid Steuerelement gebunden werden können.
<%@ 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" >
<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>
<head runat="server">
<title>BaseDataList IsBindableType Example</title>
</head>
<body>
<form id="form1" 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>
<%@ 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" >
<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>
<head runat="server">
<title>BaseDataList IsBindableType Example</title>
</head>
<body>
<form id="form1" 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>
Hinweise
Verwenden Sie die statische Methode, um zu bestimmen, ob der IsBindableType angegebene Datentyp an ein Listensteuerelement gebunden werden kann, das von der BaseDataList Klasse erbt. Die unterstützten Datentypen sind System.Boolean, System.ByteSystem.DateTimeSystem.CharSystem.DoubleSystem.UInt64System.SingleSystem.DecimalSystem.SByteSystem.UInt16System.StringSystem.Int16System.Int32System.UInt32System.Int64und .