DataGridColumnCollection.Clear Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Удаляет все объекты столбцов, производные от DataGridColumn, из коллекции DataGridColumnCollection.
public:
void Clear();
public void Clear ();
member this.Clear : unit -> unit
Public Sub Clear ()
Примеры
В следующем примере кода показано, как использовать Clear метод для очистки DataGridColumnCollection коллекции перед добавлением новых столбцов в коллекцию.
<%@ 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 language="C#" runat="server">
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
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_Init(Object sender, EventArgs e)
{
// Empty DataGridColumnsCollection collection.
ItemsGrid.Columns.Clear();
// Create dynamic columns to add to Columns collection.
BoundColumn IntegerColumn = new BoundColumn();
BoundColumn StringColumn = new BoundColumn();
BoundColumn PriceColumn = new BoundColumn();
IntegerColumn.HeaderText="Item Number";
IntegerColumn.DataField="IntegerValue";
StringColumn.HeaderText="Item";
StringColumn.DataField="StringValue";
PriceColumn.HeaderText="Price";
PriceColumn.DataField="CurrencyValue";
// Add columns to Columns collection.
ItemsGrid.Columns.Add(IntegerColumn);
ItemsGrid.Columns.Add(StringColumn);
ItemsGrid.Columns.Add(PriceColumn);
}
void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
// Load this data only once.
ItemsGrid.DataSource= CreateDataSource();
ItemsGrid.DataBind();
}
}
</script>
<head runat="server">
<title>DataGridColumnCollection Clear Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGridColumnCollection Clear Example</h3>
<b>Product List</b>
<asp:DataGrid id="ItemsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="false"
runat="server">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>
<Columns>
<asp:BoundColumn
HeaderText="Item Number"
DataField="IntegerValue"/>
<asp:BoundColumn
HeaderText="Item"
DataField="StringValue"/>
<asp:BoundColumn
HeaderText="Price"
DataField="CurrencyValue"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="right">
</ItemStyle>
</asp:BoundColumn>
</Columns>
</asp:DataGrid>
</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 language="VB" runat="server">
Function CreateDataSource() As ICollection
Dim dt As New DataTable()
Dim dr As DataRow
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
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 New DataView(dt)
Return dv
End Function 'CreateDataSource
Sub Page_Init(sender As Object, e As EventArgs)
' Empty DataGridColumnsCollection collection.
ItemsGrid.Columns.Clear()
' Create dynamic columns to add to Columns collection.
Dim IntegerColumn As New BoundColumn()
Dim StringColumn As New BoundColumn()
Dim PriceColumn As New BoundColumn()
IntegerColumn.HeaderText = "Item Number"
IntegerColumn.DataField = "IntegerValue"
StringColumn.HeaderText = "Item"
StringColumn.DataField = "StringValue"
PriceColumn.HeaderText = "Price"
PriceColumn.DataField = "CurrencyValue"
' Add columns to Columns collection.
ItemsGrid.Columns.Add(IntegerColumn)
ItemsGrid.Columns.Add(StringColumn)
ItemsGrid.Columns.Add(PriceColumn)
End Sub 'Page_Init
Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
' Load this data only once
ItemsGrid.DataSource = CreateDataSource()
ItemsGrid.DataBind()
End If
End Sub 'Page_Load
</script>
<head runat="server">
<title>DataGridColumnCollection Clear Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGridColumnCollection Clear Example</h3>
<b>Product List</b>
<asp:DataGrid id="ItemsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="false"
runat="server">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>
<Columns>
<asp:BoundColumn
HeaderText="Item Number"
DataField="IntegerValue"/>
<asp:BoundColumn
HeaderText="Item"
DataField="StringValue"/>
<asp:BoundColumn
HeaderText="Price"
DataField="CurrencyValue"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="right">
</ItemStyle>
</asp:BoundColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
Комментарии
Используйте этот метод для удаления всех DataGridColumnобъектов столбцов, производных от DataGridColumnCollection коллекции.
Примечание
Свойство Count автоматически задается 0
после использования этого метода.