다음을 통해 공유


DataGridColumnCollection.RemoveAt(Int32) 메서드

정의

DataGridColumn 컬렉션에서 지정된 인덱스에 해당하는 DataGridColumnCollection 파생 열 개체를 제거합니다.

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

매개 변수

index
Int32

제거할 DataGridColumn에 있는 DataGridColumnCollection 파생 열의 인덱스입니다.

예외

index이(가) 0보다 작거나 Count보다 큽니다.

예제

다음 코드 예제를 사용 하는 방법에 설명 합니다 RemoveAt 에서 열을 제거 하는 방법의 DataGridColumnCollection 컬렉션입니다. Columns 의 속성을 DataGrid 컨트롤은는 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">
 
      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 컬렉션의 지정 된 인덱스입니다.

합니다 DataGrid 컨트롤의 내용을 저장 하지 않습니다 해당 Columns 보기 상태의 컬렉션. 를 추가 하거나 열을 동적으로 제거 하려면 하면 프로그래밍 방식으로 추가 하거나 제거 해야 열 페이지를 새로 고칠 때마다 합니다. 제공을 Page_Init 함수를 추가 하거나 제거 하기 전에 열을 DataGrid 제어 상태를 다시 로드할 수 있습니다 및 자체를 다시 작성 합니다. 이 고, 그렇지 변경 합니다 Columns 컬렉션에 반영 되지 않습니다는 DataGrid 표시 되 면 제어 합니다.

참고

프로그래밍 방식으로 열을 추가 하거나 열을 제거할 수 있지만 Columns 의 컬렉션을 DataGrid 제어 하기가 정적 열을 나열 하 고 사용 하 여는 Visible 각 열을 표시 하거나 숨기려면 속성입니다.

적용 대상

추가 정보