BaseDataList.IsBindableType(Type) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 데이터 형식을 BaseDataList 클래스에서 파생된 목록 컨트롤에 바인딩할 수 있는지 여부를 결정합니다.
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
매개 변수
반환
지정된 데이터 형식을 BaseDataList 클래스에서 파생된 목록 컨트롤에 바인딩할 수 있으면 true
이고, 그렇지 않으면 false
입니다.
예제
다음 코드 예제에서는 속성을 사용 하 여 IsBindableType 특정 데이터 형식의 값을 컨트롤에 바인딩할 수 있는지 여부를 결정 하는 DataGrid 방법을 보여 줍니다.
<%@ 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>
설명
정적 메서드를 IsBindableType 사용하여 지정된 데이터 형식을 클래스에서 BaseDataList 상속하는 목록 컨트롤에 바인딩할 수 있는지 여부를 확인합니다. 지원되는 데이터 형식은 System.Boolean, System.Byte,, System.SByte, System.UInt16System.Int16, System.Int32, System.UInt32System.Int64, System.UInt64, System.SingleSystem.DoubleSystem.DateTimeSystem.CharSystem.Decimal및 입니다.System.String