DataGridColumnCollection.RemoveAt(Int32) DataGridColumnCollection.RemoveAt(Int32) DataGridColumnCollection.RemoveAt(Int32) DataGridColumnCollection.RemoveAt(Int32) Method

定義

DataGridColumn コレクションの指定したインデックス位置にある DataGridColumnCollection 派生列オブジェクトを削除します。Removes a DataGridColumn-derived column object from the DataGridColumnCollection collection at the specified index.

public:
 void RemoveAt(int index);
public void RemoveAt (int index);
member this.RemoveAt : int -> unit
Public Sub RemoveAt (index As Integer)

パラメーター

index
Int32 Int32 Int32 Int32

削除する DataGridColumnDataGridColumnCollection 派生列のインデックス。The index of the DataGridColumn-derived column in the DataGridColumnCollection to remove.

例外

index0 より小さいか Count より大きいです。index is less than 0 or greater than Count.

次のコード例は、 RemoveAtメソッドを使用してDataGridColumnCollectionコレクションから列を削除する方法を示しています。The following code example demonstrates how to use the RemoveAt method to remove a column from the DataGridColumnCollection collection. コントロールのプロパティがコレクションでDataGridColumnCollectionあることに注意してください。 Columns DataGridNote that the Columns property of the DataGrid control is the DataGridColumnCollection collection.

<%@ 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">
 
      DataTable Cart;
      DataView CartView;
 
      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_Load(Object sender, EventArgs e) 
      {

         if (Session["DG4_ShoppingCart"] == null) 
         {
            Cart = new DataTable();
            Cart.Columns.Add(new DataColumn("Item", typeof(string)));
            Cart.Columns.Add(new DataColumn("Price", typeof(string)));
            Session["DG4_ShoppingCart"] = Cart;
         }
         else 
         {
            Cart = (DataTable)Session["DG4_ShoppingCart"];
         }    
         CartView = new DataView(Cart);
         ShoppingCart.DataSource = CartView;
         ShoppingCart.DataBind();
 
         if (!IsPostBack) 
         {
            // Load this data only once.
            ItemsGrid.DataSource= CreateDataSource();
            ItemsGrid.DataBind();
         }

      }
  
      void Grid_CartCommand(Object sender, DataGridCommandEventArgs e) {
     
         DataRow dr = Cart.NewRow();
          
         // e.Item is the table row where the command is raised.
         // For bound columns, the value is stored in the Text property of the TableCell.
         TableCell itemCell = e.Item.Cells[2];
         TableCell priceCell = e.Item.Cells[3];
         string item = itemCell.Text;
         string price = priceCell.Text;
         
         if (((Button)e.CommandSource).CommandName == "AddToCart") 
         {
            dr[0] = item;
            dr[1] = price;
            Cart.Rows.Add(dr);
         }
         else 
         { 

            //Remove from Cart.
         
            CartView.RowFilter = "Item='" + item + "'";
            if (CartView.Count > 0) 
            {    
               CartView.Delete(0);
            }
            CartView.RowFilter = "";
         }
         ShoppingCart.DataBind();
 
      }

       void Page_Init(Object sender, EventArgs e) 
      {
         ItemsGrid.Columns.RemoveAt(2);
      }
 
   </script>
 
<head runat="server">
    <title>DataGridColumnCollection RemoveAt Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGridColumnCollection RemoveAt Example</h3>
 
      <table cellpadding="5">
         <tr valign="top">
            <td>
 
               <b>Product List</b>
 
               <asp:DataGrid id="ItemsGrid"
                    BorderColor="black"
                    BorderWidth="1"
                    CellPadding="3"
                    AutoGenerateColumns="false"
                    OnItemCommand="Grid_CartCommand"
                    runat="server">

                  <HeaderStyle BackColor="#00aaaa">
                  </HeaderStyle>
 
                  <Columns>
 
                     <asp:ButtonColumn 
                          HeaderText="Add to cart" 
                          ButtonType="PushButton" 
                          Text="Add" 
                          CommandName="AddToCart"/>
 
                     <asp:ButtonColumn 
                          HeaderText="Remove from cart" 
                          ButtonType="PushButton" 
                          Text="Remove" 
                          CommandName="RemoveFromCart"/>
                  
                     <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>
 
            </td>
            <td>
 
               <b>Shopping Cart</b>
 
               <asp:DataGrid id="ShoppingCart" 
                    runat="server"
                    BorderColor="black"
                    BorderWidth="1"
                    GridLines="Both"
                    ShowFooter="false"
                    CellPadding="3"
                    CellSpacing="0">

                  <HeaderStyle BackColor="#00aaaa">
                  </HeaderStyle>

                </asp:DataGrid>
 
            </td>
         </tr>
 
      </table>
 
   </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">
 
        Dim Cart As DataTable
        Dim CartView As DataView
        
        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_Load(sender As Object, e As EventArgs)
            
            If Session("DG4_ShoppingCart") Is Nothing Then
                Cart = New DataTable()
                Cart.Columns.Add(New DataColumn("Item", GetType(String)))
                Cart.Columns.Add(New DataColumn("Price", GetType(String)))
                Session("DG4_ShoppingCart") = Cart
            Else
                Cart = CType(Session("DG4_ShoppingCart"), DataTable)
            End If
            CartView = New DataView(Cart)
            ShoppingCart.DataSource = CartView
            ShoppingCart.DataBind()
            
            If Not IsPostBack Then

                ' Load this data only once
                ItemsGrid.DataSource = CreateDataSource()
                ItemsGrid.DataBind()

            End If
        End Sub 'Page_Load
         

        Sub Grid_CartCommand(sender As Object, e As DataGridCommandEventArgs)
            
            Dim dr As DataRow = Cart.NewRow()
            
            ' e.Item is the table row where the command is raised.
            ' For bound columns, the value is stored in the Text property of the TableCell.
            Dim itemCell As TableCell = e.Item.Cells(2)
            Dim priceCell As TableCell = e.Item.Cells(3)
            Dim item As String = itemCell.Text
            Dim price As String = priceCell.Text
            
            If CType(e.CommandSource, Button).CommandName = "AddToCart" Then
                dr(0) = item
                dr(1) = price
                Cart.Rows.Add(dr)
            Else 

                'Remove from Cart.
                CartView.RowFilter = "Item='" & item & "'"
                If CartView.Count > 0 Then
                    CartView.Delete(0)
                End If
                CartView.RowFilter = ""

            End If
            ShoppingCart.DataBind()
        End Sub 'Grid_CartCommand
         

        Sub Page_Init(sender As Object, e As EventArgs)
            ItemsGrid.Columns.RemoveAt(2)
        End Sub 'Page_Init
 
   </script>
 
<head runat="server">
    <title>DataGridColumnCollection RemoveAt Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGridColumnCollection RemoveAt Example</h3>
 
      <table cellpadding="5">
         <tr valign="top">
            <td>
 
               <b>Product List</b>
 
               <asp:DataGrid id="ItemsGrid"
                    BorderColor="black"
                    BorderWidth="1"
                    CellPadding="3"
                    AutoGenerateColumns="false"
                    OnItemCommand="Grid_CartCommand"
                    runat="server">

                  <HeaderStyle BackColor="#00aaaa">
                  </HeaderStyle>
 
                  <Columns>
 
                     <asp:ButtonColumn 
                          HeaderText="Add to cart" 
                          ButtonType="PushButton" 
                          Text="Add" 
                          CommandName="AddToCart"/>
 
                     <asp:ButtonColumn 
                          HeaderText="Remove from cart" 
                          ButtonType="PushButton" 
                          Text="Remove" 
                          CommandName="RemoveFromCart"/>
                  
                     <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>
 
            </td>
            <td>
 
               <b>Shopping Cart</b>
 
               <asp:DataGrid id="ShoppingCart" 
                    runat="server"
                    BorderColor="black"
                    BorderWidth="1"
                    GridLines="Both"
                    ShowFooter="false"
                    CellPadding="3"
                    CellSpacing="0">

                  <HeaderStyle BackColor="#00aaaa">
                  </HeaderStyle>

                </asp:DataGrid>
 
            </td>
         </tr>
 
      </table>
 
   </form>
 
</body>
</html>

注釈

このメソッドを使用してDataGridColumn、指定したインデックス位置DataGridColumnCollectionにあるコレクションから派生列オブジェクトを削除します。Use this method to remove a DataGridColumn-derived column object from a DataGridColumnCollection collection at the specified index.

コントロールDataGridは、そのColumnsコレクションの内容をビューステートに格納しません。The DataGrid control does not store the contents of its Columns collection in the view state. 列を動的に追加または削除するには、ページを更新するたびに、プログラムを使用して列を追加または削除する必要があります。To add or remove a column dynamically, you must programmatically add or remove the column each time the page is refreshed. コントロールがPage_Init状態を再読み込みして自身を再構築できるようになる前に、列を追加または削除する関数を提供します。 DataGridProvide a Page_Init function that adds or removes the column before the DataGrid control can reload its state and rebuild itself. そうしないと、 Columnsコレクションに対する変更は、表示されたときにDataGridコントロールに反映されません。Otherwise, the changes to the Columns collection are not reflected in the DataGrid control when it is displayed.

注意

プログラムによってColumns DataGridコントロールのコレクションに対して列の追加や削除を行うことができますが、列をVisible静的に一覧表示してから、プロパティを使用して各列の表示/非表示を簡単に行うことができます。Although you can programmatically add columns to or remove columns from the Columns collection of the DataGrid control, it is easier to list the columns statically and then use the Visible property to display or hide each column.

適用対象

こちらもご覧ください