DataGridItemCollection Classe

Definizione

Rappresenta una raccolta di oggetti DataGridItem in un controllo DataGrid.

public ref class DataGridItemCollection : System::Collections::ICollection
public class DataGridItemCollection : System.Collections.ICollection
type DataGridItemCollection = class
    interface ICollection
    interface IEnumerable
Public Class DataGridItemCollection
Implements ICollection
Ereditarietà
DataGridItemCollection
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come scorrere DataGridItem gli oggetti in una DataGridItemCollection raccolta.


<%@ 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">
 
      ICollection 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 < 5; 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) 
         {
            ItemsGrid.DataSource = CreateDataSource();
            ItemsGrid.DataBind();
         }

      }

      void Button_Click(Object sender, EventArgs e) 
      {

         // Count the number of selected items in the DataGrid control.
         int count = 0;

         // Display the selected times.
         Message.Text = "You Selected: <br />";

         // Iterate through each item (row) in the DataGrid control and
         // determine whether it is selected.
         foreach (DataGridItem item in ItemsGrid.Items)
         {

            DetermineSelection(item, ref count);        

         }

         // If no items are selected, display the appropriate message.
         if (count == 0)
         {

            Message.Text = "No items selected";

         }

      }

      void DetermineSelection(DataGridItem item, ref int count)
      {

         // Retrieve the SelectCheckBox CheckBox control from the 
         // specified item (row) in the DataGrid control.
         CheckBox selection = (CheckBox)item.FindControl("SelectCheckBox");

         // If the item is selected, display the appropriate message and
         // increment the count of selected items.
         if (selection != null)
         {

           if (selection.Checked)
           {
              Message.Text += "- " + item.Cells[1].Text + "<br />";
              count++;
           }

         }    

      }

      void Check_Change(Object sender, EventArgs e)
      {

         // Show or hide the first column depending on the value of
         // the check box.
         if (ShowCheckBox.Checked)
         {
            ItemsGrid.Columns[0].Visible = true;
         }
         else
         {
            ItemsGrid.Columns[0].Visible = false;
         }

      }

   </script>
 
<head runat="server">
    <title>DataGridColumn Visible Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGridColumn Visible Example</h3>

      Select whether to show or hide the first column.

      <br /><br />
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           ShowFooter="True"
           AutoGenerateColumns="False"
           runat="server">

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

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

         <Columns>

            <asp:BoundColumn DataField="IntegerValue"
                 Visible="True" 
                 HeaderText="Item"/>

            <asp:BoundColumn DataField="StringValue"
                 Visible="True"  
                 HeaderText="Description"/>

            <asp:BoundColumn DataField="CurrencyValue"
                 Visible="True"  
                 HeaderText="Price"
                 DataFormatString="{0:c}">

               <ItemStyle HorizontalAlign="Right">
               </ItemStyle>

            </asp:BoundColumn>

            <asp:TemplateColumn HeaderText="Select Item"
                 Visible="True" >

               <ItemTemplate>

                  <asp:CheckBox id="SelectCheckBox"
                       Text="Add to Cart"
                       Checked="False"
                       runat="server"/>

               </ItemTemplate>

            </asp:TemplateColumn>
 
         </Columns>  
 
      </asp:DataGrid>

      <br /><br />

      <asp:Button id="SubmitButton"
           Text="Submit"
           OnClick = "Button_Click"
           runat="server"/>

      <br /><br />

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

      <hr />

      <asp:CheckBox id="ShowCheckBox"
           Text="Show first column"
           AutoPostBack="True"
           OnCheckedChanged="Check_Change"
           Checked="True"
           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 4 
        
            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 
  
            ItemsGrid.DataSource = CreateDataSource()
            ItemsGrid.DataBind()

         End If

      End Sub

      Sub Button_Click(sender As Object, e As EventArgs) 

         ' Count the number of selected items in the DataGrid control.
         Dim count As Integer = 0

         ' Display the selected times.
         Message.Text = "You Selected: <br />"

         ' Iterate through each item (row) in the DataGrid control and
         ' determine whether it is selected.
         Dim item As DataGridItem
 
         For Each item In ItemsGrid.Items

            DetermineSelection(item, count)        

         Next

         ' If no items are selected, display the appropriate message.
         If count = 0 Then

            Message.Text = "No items selected"

         End If

      End Sub

      Sub DetermineSelection(item As DataGridItem, ByRef count As Integer)

         ' Retrieve the SelectCheckBox CheckBox control from the 
         ' specified item (row) in the DataGrid control.
         Dim selection As CheckBox = _
             CType(item.FindControl("SelectCheckBox"), CheckBox)

         ' If the item is selected, display the appropriate message and
         ' increment the count of selected items.
         If Not selection Is Nothing Then

           If selection.Checked Then
           
              Message.Text &= "- " & item.Cells(1).Text & "<br />"
              count = count + 1
           
           End If

         End If    

      End Sub

      Sub Check_Change(sender As Object, e As EventArgs)

         ' Show or hide the first column depending on the value of
         ' the check box.
         If ShowCheckBox.Checked Then
        
            ItemsGrid.Columns(0).Visible = True
         
         Else
         
            ItemsGrid.Columns(0).Visible = False
         
         End If

      End Sub

   </script>
 
<head runat="server">
    <title>DataGridColumn Visible Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGridColumn Visible Example</h3>

      Select whether to show or hide the first column.

      <br /><br />
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           ShowFooter="True"
           AutoGenerateColumns="False"
           runat="server">

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

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

         <Columns>

            <asp:BoundColumn DataField="IntegerValue"
                 Visible="True" 
                 HeaderText="Item"/>

            <asp:BoundColumn DataField="StringValue"
                 Visible="True"  
                 HeaderText="Description"/>

            <asp:BoundColumn DataField="CurrencyValue"
                 Visible="True"  
                 HeaderText="Price"
                 DataFormatString="{0:c}">

               <ItemStyle HorizontalAlign="Right">
               </ItemStyle>

            </asp:BoundColumn>

            <asp:TemplateColumn HeaderText="Select Item"
                 Visible="True" >

               <ItemTemplate>

                  <asp:CheckBox id="SelectCheckBox"
                       Text="Add to Cart"
                       Checked="False"
                       runat="server"/>

               </ItemTemplate>

            </asp:TemplateColumn>
 
         </Columns> 
 
      </asp:DataGrid>

      <br /><br />

      <asp:Button id="SubmitButton"
           Text="Submit"
           OnClick = "Button_Click"
           runat="server"/>

      <br /><br />

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

      <hr />

      <asp:CheckBox id="ShowCheckBox"
           Text="Show first column"
           AutoPostBack="True"
           OnCheckedChanged="Check_Change"
           Checked="True"
           runat="server"/>
 
   </form>
 
</body>
</html>

Commenti

La DataGridItemCollection classe rappresenta una raccolta di DataGridItem oggetti, che a sua volta rappresentano gli elementi di dati in un DataGrid controllo . Per recuperare DataGridItem oggetti a livello di codice da un DataGrid controllo, utilizzare uno dei metodi seguenti:

  • Usare l'indicizzatore per ottenere un singolo DataGridItem oggetto dalla raccolta, usando la notazione della matrice.

  • Utilizzare il CopyTo metodo per copiare il contenuto dell'insieme in un System.Arrayoggetto , che può quindi essere usato per ottenere elementi dalla raccolta.

  • Usare il GetEnumerator metodo per creare un'interfaccia System.Collections.IEnumerator , che può quindi essere usata per ottenere elementi dalla raccolta.

La Count proprietà specifica il numero totale di elementi nell'insieme e viene comunemente utilizzata per determinare il limite superiore dell'insieme.

Costruttori

DataGridItemCollection(ArrayList)

Inizializza una nuova istanza della classe DataGridItemCollection.

Proprietà

Count

Ottiene il numero di oggetti DataGridItem contenuti nell'insieme.

IsReadOnly

Ottiene un valore che indica se è possibile modificare gli oggetti DataGridItem nell'insieme DataGridItemCollection.

IsSynchronized

Ottiene un valore che indica se l'accesso all'insieme DataGridItemCollection è sincronizzato (thread-safe).

Item[Int32]

Ottiene l'oggetto DataGridItem in corrispondenza dell'indice specificato nell'insieme.

SyncRoot

Ottiene l'oggetto che può essere utilizzato per sincronizzare l'accesso all'insieme DataGridItemCollection.

Metodi

CopyTo(Array, Int32)

Copia tutti gli elementi di questo insieme DataGridItemCollection nella classe Array specificata, a partire dall'indice specificato nell'oggetto Array.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetEnumerator()

Restituisce un oggetto implementato da IEnumerator che contiene tutti gli oggetti DataGridItem nell'insieme DataGridItemCollection.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a

Vedi anche