Freigeben über


DataGridColumnCollection.Count-Eigenschaft

Ruft die Anzahl der Spalten in der DataGridColumnCollection-Auflistung ab.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public ReadOnly Property Count As Integer
'Usage
Dim instance As DataGridColumnCollection
Dim value As Integer

value = instance.Count
public int Count { get; }
public:
virtual property int Count {
    int get () sealed;
}
/** @property */
public final int get_Count ()
public final function get Count () : int

Eigenschaftenwert

Die Anzahl der Spalten in DataGridColumnCollection.

Hinweise

Mit dieser Eigenschaft können Sie die Anzahl der Spalten in der DataGridColumnCollection-Auflistung bestimmen. Die Count-Eigenschaft wird üblicherweise beim Durchlaufen der Auflistung zum Bestimmen der oberen Grenze der Auflistung verwendet.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mit der Count-Eigenschaft die obere Grenze der DataGridColumnCollection-Auflistung ermittelt wird. Dieser Wert wird dann beim Durchlaufen der Auflistung verwendet.

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<html>
<script language="VB" runat="server">

    Dim Cart As New DataTable()
    Dim CartView As DataView

    Sub Page_Load(sender As Object, e As EventArgs)
        Dim dr As DataRow
        
        If Session("ShoppingCart") Is Nothing Then
            
            Cart.Columns.Add(New DataColumn("Qty", GetType(String)))
            Cart.Columns.Add(New DataColumn("Item", GetType(String)))
            Cart.Columns.Add(New DataColumn("Price", GetType(String)))
            Session("ShoppingCart") = Cart
            
            ' Create sample data.
            Dim i As Integer
            For i = 1 To 4
                dr = Cart.NewRow()
                If i Mod 2 <> 0 Then
                    dr(0) = "2"
                Else
                    dr(0) = "1"
                End If
                dr(1) = "Item " & i.ToString()
                dr(2) =(1.23 *(i + 1)).ToString()
                Cart.Rows.Add(dr)
            Next i
        Else
            Cart = CType(Session("ShoppingCart"), DataTable)
        End If 
        CartView = New DataView(Cart)
        CartView.Sort = "Item"
        
        If Not IsPostBack Then
            BindGrid()
        End If 
    End Sub 'Page_Load


    Sub MyDataGrid_Edit(sender As Object, e As DataGridCommandEventArgs)
        MyDataGrid.EditItemIndex = e.Item.ItemIndex
        BindGrid()
    End Sub 'MyDataGrid_Edit


    Sub MyDataGrid_Cancel(sender As Object, e As DataGridCommandEventArgs)
        MyDataGrid.EditItemIndex = - 1
        BindGrid()
    End Sub 'MyDataGrid_Cancel


    Sub MyDataGrid_Update(sender As Object, e As DataGridCommandEventArgs)
        ' For bound columns, the edited value is stored in a TextBox.
        ' The TextBox is the 0th element in the column's cell.
        Dim qtyText As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox)
        Dim priceText As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox)
        
        Dim item As String = e.Item.Cells(1).Text
        Dim qty As String = qtyText.Text
        Dim price As String = priceText.Text
        
        Dim dr As DataRow
        
        ' With a database, use an update command to update the data. Because 
        ' the data source in this example is an in-memory DataTable, delete the 
        ' old row and replace it with a new one.        

        ' Remove old entry.
        CartView.RowFilter = "Item='" & item & "'"
        If CartView.Count > 0 Then
            CartView.Delete(0)
        End If
        CartView.RowFilter = ""
        
        ' Add new entry.
        dr = Cart.NewRow()
        dr(0) = qty
        dr(1) = item
        dr(2) = price
        Cart.Rows.Add(dr)
        
        MyDataGrid.EditItemIndex = - 1
        BindGrid()
    End Sub 'MyDataGrid_Update


    Sub Button_Click(sender As Object, e As EventArgs)
        Label1.Text = "Header Text for each column: <br><br>"
        
        Dim i As Integer
        For i = 0 To MyDataGrid.Columns.Count - 1
            Label1.Text &= "<br>" & MyDataGrid.Columns(i).HeaderText
        Next i
    End Sub 'Button_Click


    Sub BindGrid()
        MyDataGrid.DataSource = CartView
        MyDataGrid.DataBind()
    End Sub 'BindGrid

</script>

<body style="font: 10pt verdana">

   <form runat="server">

      <asp:DataGrid id="MyDataGrid" runat="server"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           Font-Name="Verdana"
           Font-Size="8pt"
           HeaderStyle-BackColor="#aaaadd"
           OnEditCommand="MyDataGrid_Edit"
           OnCancelCommand="MyDataGrid_Cancel"
           OnUpdateCommand="MyDataGrid_Update"
           AutoGenerateColumns="false">

         <Columns>

            <asp:EditCommandColumn
                 EditText="Edit"
                 CancelText="Cancel"
                 UpdateText="Update"
                 ItemStyle-Wrap="false"
                 HeaderText="Edit Command Column"
                 HeaderStyle-Wrap="false"/>

            <asp:BoundColumn HeaderText="Item" 
                 ReadOnly="true" 
                 DataField="Item"/>

            <asp:BoundColumn HeaderText="Quantity" 
                 DataField="Qty"/>

            <asp:BoundColumn HeaderText="Price" 
                 DataField="Price"/>

         </Columns>

      </asp:DataGrid>

      <br><br>

      <asp:Button id="Button1"
           Text="Display Header Text for Columns"
           OnClick="Button_Click"
           runat="server"/>

      <br><br>

      <asp:Label id="Label1"
           runat="server"/>      

   </form>

</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<html>
<script language="C#" runat="server">

   DataTable Cart = new DataTable();
   DataView CartView;   

   void Page_Load(Object sender, EventArgs e) 
   {
      DataRow dr;

      if (Session["ShoppingCart"] == null) 
      {       

         Cart.Columns.Add(new DataColumn("Qty", typeof(String)));
         Cart.Columns.Add(new DataColumn("Item", typeof(String)));
         Cart.Columns.Add(new DataColumn("Price", typeof(String)));
         Session["ShoppingCart"] = Cart;
            
         // Create sample data.
         for (int i = 1; i <= 4; i++) 
         {
            dr = Cart.NewRow();
            if (i % 2 != 0)
               dr[0] = "2";
            else
               dr[0] = "1";
            dr[1] = "Item " + i.ToString();
            dr[2] = (1.23 * (i + 1)).ToString();
            Cart.Rows.Add(dr);
         }
      }
      else
         Cart = (DataTable)Session["ShoppingCart"];          

      CartView = new DataView(Cart);
      CartView.Sort="Item";

      if (!IsPostBack)
         BindGrid(); 
                  
   }

   void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e) 
   {
      MyDataGrid.EditItemIndex = e.Item.ItemIndex;
      BindGrid();
   }

   void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e) 
   {
      MyDataGrid.EditItemIndex = -1;
      BindGrid();
   }

   void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e) 
   {
      // For bound columns, the edited value is stored in a TextBox.
      // The TextBox is the 0th element in the column's cell.
      TextBox qtyText = (TextBox)e.Item.Cells[2].Controls[0];
      TextBox priceText = (TextBox)e.Item.Cells[3].Controls[0];

      String item = e.Item.Cells[1].Text;
      String qty = qtyText.Text;
      String price = priceText.Text;
       
      DataRow dr;

      // With a database, use an update command to update the data. Because 
      // the data source in this example is an in-memory DataTable, delete the 
      // old row and replace it with a new one.

      // Remove old entry.
      CartView.RowFilter = "Item='" + item + "'";
      if (CartView.Count > 0)
         CartView.Delete(0);
      CartView.RowFilter = "";

      // Add new entry.
      dr = Cart.NewRow();
      dr[0] = qty;
      dr[1] = item;
      dr[2] = price;
      Cart.Rows.Add(dr);

      MyDataGrid.EditItemIndex = -1;
      BindGrid();
   }

   void Button_Click(Object sender, EventArgs e) 
   {      
      Label1.Text = "Header Text for each column: <br>";

      for (int i = 0; i < MyDataGrid.Columns.Count; i++)
      {
         Label1.Text += "<br>" + MyDataGrid.Columns[i].HeaderText;
      }
   }

   void BindGrid() 
   {
      MyDataGrid.DataSource = CartView;
      MyDataGrid.DataBind();
   }

</script>

<body style="font: 10pt verdana">

   <form runat="server">

      <asp:DataGrid id="MyDataGrid" runat="server"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           Font-Name="Verdana"
           Font-Size="8pt"
           HeaderStyle-BackColor="#aaaadd"
           OnEditCommand="MyDataGrid_Edit"
           OnCancelCommand="MyDataGrid_Cancel"
           OnUpdateCommand="MyDataGrid_Update"
           AutoGenerateColumns="false">

         <Columns>

            <asp:EditCommandColumn
                 EditText="Edit"
                 CancelText="Cancel"
                 UpdateText="Update"
                 ItemStyle-Wrap="false"
                 HeaderText="Edit Command Column"
                 HeaderStyle-Wrap="false"/>

            <asp:BoundColumn HeaderText="Item" 
                 ReadOnly="true" 
                 DataField="Item"/>

            <asp:BoundColumn HeaderText="Quantity" 
                 DataField="Qty"/>

            <asp:BoundColumn HeaderText="Price" 
                 DataField="Price"/>

         </Columns>

      </asp:DataGrid>

      <br><br>

      <asp:Button id="Button1"
           Text="Display Header Text for Columns"
           OnClick="Button_Click"
           runat="server"/>

      <br><br>

      <asp:Label id="Label1"
           runat="server"/>      

   </form>

</body>
</html>

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

DataGridColumnCollection-Klasse
DataGridColumnCollection-Member
System.Web.UI.WebControls-Namespace
DataGrid-Klasse