DataListItemCollection DataListItemCollection DataListItemCollection DataListItemCollection Class

定義

DataListItem コントロール内の DataList オブジェクトのコレクションを表します。Represents the collection of DataListItem objects in the DataList control. このクラスは継承できません。This class cannot be inherited.

public ref class DataListItemCollection sealed : System::Collections::ICollection
public sealed class DataListItemCollection : System.Collections.ICollection
type DataListItemCollection = class
    interface ICollection
    interface IEnumerable
Public NotInheritable Class DataListItemCollection
Implements ICollection
継承
DataListItemCollectionDataListItemCollectionDataListItemCollectionDataListItemCollection
実装

次の例では、 DataViewコントロールの形式でデータソースを作成し、マークアップで宣言されたDataListコントロールにバインドします。The following example creates a data source in the form of a DataView control and binds it to a DataList control declared in markup. 次に、基になるDataListItemCollectionオブジェクトの内容をページに表示します。It then displays the contents of the underlying DataListItemCollection object on the page.

<%@ Import Namespace = "System.Data"  %>
<%@ Page language="c#" AutoEventWireup="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">    
// The following example creates a DataSource as a DataView.
// The DataView is bound to a DataList that is displayed using an
// ItemTemplate. When the page is first loaded, the program uses the 
// CopyTo method to copy the entire data source to an Array and then 
// displays that data.

ICollection CreateDataSource()
{
    DataTable myDataTable = new DataTable();
    DataRow myDataRow;

    myDataTable.Columns.Add(new DataColumn("EmployeeName", typeof(string)));
    myDataTable.Columns.Add(new DataColumn("EmployeeID", typeof(long)));
    for (int i = 0; i < 3; i++)
    {
        myDataRow = myDataTable.NewRow();
        myDataRow[0] = "somename" + i.ToString();
        myDataRow[1] = (i+1000);
        myDataTable.Rows.Add(myDataRow);
    }
    DataView dataView = new DataView(myDataTable);
    return dataView;
}

// <Snippet2>
void Page_Load(Object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // Bind the DataView to the DataSource.
        myDataList.DataSource = CreateDataSource();
        myDataList.DataBind();
        // Create a Array to hold the DataSource.
        System.Array myArray = Array.CreateInstance(typeof(DataListItem),
            myDataList.Items.Count);
        // Copy the DataSource to an Array.
        myDataList.Items.CopyTo(myArray,0);
        PrintValues(myArray);
    }
}

// Prints each element in the Array onto the label lblAllItems1.
public void PrintValues(Array myArr)
{
    DataListItem currentItem;
    System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
    while (myEnumerator.MoveNext())
    {
        currentItem = (DataListItem)myEnumerator.Current;
        lblAllItems1.Text += "<br /><br />" + 
            ((Label)(currentItem.Controls[1])).Text;
    }
}

// Event handler method for show button.
void show_Click(Object sender,EventArgs e)
{
    // Get the underlying DataListItemCollection from the DataList object.
    DataListItemCollection myDataListItemCollection = myDataList.Items;
    // Display the read-only properties.
    Response.Write("<b>The Total number of items are " + 
        myDataListItemCollection.Count + "</b>");
    Response.Write("<br /><b>The ReadOnly property of the " + 
        "DataListItemCollection is always" + 
        myDataListItemCollection.IsReadOnly + "</b>");
    Response.Write("<br /><b>The IsSynchronized property of the " +
        "DataListItemCollection is always " +
        myDataListItemCollection.IsSynchronized + "</b>");
    myDataListItemCollection = null;
}
// </Snippet2>

// <Snippet5>
void allItems_Click(Object sender,EventArgs e)
{
    IEnumerator dataListEnumerator;
    DataListItem currentItem;
    lblAllItems.Text = "";
    // Get an enumerator to traverse the DataListItemCollection.
    dataListEnumerator = myDataList.Items.GetEnumerator();
    while(dataListEnumerator.MoveNext())
    {
        currentItem = (DataListItem)dataListEnumerator.Current;
        // Display the current DataListItem onto the label.
        lblAllItems.Text += ((Label)(currentItem.Controls[1])).Text + " ";
    }
}
// </Snippet5>

// <Snippet6>
void itemSelected(Object sender,EventArgs e)
{
    // Get the underlying DataListItemCollection from the DataList object.
    DataListItemCollection myDataListItemCollection = myDataList.Items;
    // Get the index of the selected radio button in the RadioButtonList.
    int index = Convert.ToInt16(listItemNo.SelectedItem.Value);
    // Get the DataListItem corresponding to index from DataList.
    // SyncRoot is used to make access to the DataListItemCollection 
    // in a thread-safe manner It returns the object that invoked it. 
    DataListItem currentItem = 
        ((DataListItemCollection)(myDataListItemCollection.SyncRoot))[index];
    // Display the selected DataListItem onto a label.
    lblDisplay.Text = "<b>DataListItem" + index + " is : "
        + ((Label)(currentItem.Controls[1])).Text;
    currentItem = null;
    myDataListItemCollection = null;
}
// </Snippet6>

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>
        DataListItemCollection Example
    </title>
</head>
<body>
<form runat="server" id="Form1">
    <h3>
        DataListItemCollection Example
    </h3>
    <table>
        <tr>
            <td>
                <asp:datalist id="myDataList" runat="server" Font-Size="8pt" 
                    Font-Names="Verdana" BorderColor="black" CellSpacing="5"
                    CellPadding="10" GridLines="Horizontal">
                    <HeaderStyle BackColor="#aaaadd"></HeaderStyle>
                    <HeaderTemplate>
                        EmployeeName EmployeeID
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:Label id="label1" runat="server"
                            Text='<%# DataBinder.Eval(Container.DataItem, "EmployeeName") %>'>
                        </asp:Label>
                        &nbsp;&nbsp;&nbsp;&nbsp;
                        <%# DataBinder.Eval(Container.DataItem, "EmployeeID")%>
                    </ItemTemplate>
                </asp:datalist>
            </td>
            <td>
                <asp:label id="lblAllItems1" 
                    Text="The following items <br /> are copied to the array: " 
                    Runat="server" ForeColor="blue" Font-Bold="true" 
                    AssociatedControlID="listItemNo">
                    The following items <br /> are copied to the array:
                </asp:label>
            </td>
            <td>
                &nbsp;&nbsp;&nbsp; <b>Show Items:</b>
                <asp:RadioButtonList ID="listItemNo" 
                    OnSelectedIndexChanged="itemSelected" AutoPostBack="true" 
                    Runat="server">
                    <asp:ListItem Value="0" Text="0"></asp:ListItem>
                    <asp:ListItem Value="1" Text="1"></asp:ListItem>
                    <asp:ListItem Value="2" Text="2"></asp:ListItem>
                </asp:RadioButtonList>
            </td>
            <td>
                <asp:Label ID="lblDisplay" Runat="server" />
            </td>
        </tr>
    </table>
    <p>
        <asp:button id="show" onclick="show_Click" Runat="server" 
             Font-Bold="True" Text="DataList Information" />
        <asp:button id="allitems" onclick="allItems_Click" Runat="server" 
            Font-Bold="True" Text="Show All DataListItems" />
    </p>
    <p>
        <b>All DataList items will be shown here:</b>
        <asp:label id="lblAllItems" Runat="server" ForeColor="blue" />
    </p>
</form>
</body>
</html>
<%@ Import Namespace = "System.Data"  %>
<%@ Page language="VB" AutoEventWireup="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">    
' The following example creates a DataSource as a DataView.
' The DataView is bound to a DataList that is displayed using an
' ItemTemplate. When the page is first loaded, the program uses the 
' CopyTo method to copy the entire data source to an Array and then 
' displays that data.

Function CreateDataSource() As ICollection 
    Dim myDataTable As DataTable = New DataTable()
    Dim myDataRow As DataRow 
    Dim i As Integer

    myDataTable.Columns.Add(New DataColumn("EmployeeName", GetType(String)))
    myDataTable.Columns.Add(New DataColumn("EmployeeID", GetType(Integer)))
    For i = 0 To 2
        myDataRow = myDataTable.NewRow()
        myDataRow(0) = "somename" + i.ToString()
        myDataRow(1) = i + 1000
        myDataTable.Rows.Add(myDataRow)
    Next 
    CreateDataSource = new DataView(myDataTable)
End Function

' <Snippet2>
Sub Page_Load(sender As object, e As EventArgs)
    If (Not IsPostBack)
        ' Bind the DataView to the DataSource.
        myDataList.DataSource = CreateDataSource()
        myDataList.DataBind()
        ' Create a Array to hold the DataSource.
        Dim myArray As System.Array = Array.CreateInstance(GetType(DataListItem), _
            myDataList.Items.Count)
        ' Copy the DataSource to an Array.
        myDataList.Items.CopyTo(myArray, 0)
        PrintValues(myArray)
    End If
End sub

' Prints each element in the Array onto the label lblAllItems1.
Public Sub PrintValues(myArr As Array)
    Dim currentItem As DataListItem 
    Dim myEnumerator As System.Collections.IEnumerator = myArr.GetEnumerator()
    While (myEnumerator.MoveNext())
        currentItem = CType(myEnumerator.Current,DataListItem)
        lblAllItems1.Text = lblAllItems1.Text & "<br /><br />" & _
            CType(currentItem.Controls(1),Label).Text
    End While
End Sub

    ' Event handler method for show button.
Sub show_Click(sender as Object, e As EventArgs)
    ' Get the underlying DataListItemCollection from the DataList object.
    Dim myDataListItemCollection As DataListItemCollection = myDataList.Items
    ' Display the read-only properties.
    Response.Write("<b>The Total number of items are " & _
        myDataListItemCollection.Count & "</b>")
        Response.Write("<br /><b>The ReadOnly property of the " & _
            "DataListItemCollection is always " & _
            myDataListItemCollection.IsReadOnly & "</b>")
        Response.Write("<br /><b>The IsSynchronized property of the " & _
            "DataListItemCollection is always " _
            & myDataListItemCollection.IsSynchronized & "</b>")
    myDataListItemCollection = Nothing
End Sub
    ' </Snippet2>

' <Snippet5>
Sub AllItems_Click(sender As Object, e As EventArgs)
    Dim dataListEnumerator As IEnumerator
    Dim currentItem As DataListItem 
    lblAllItems.Text = ""
    ' Get an enumerator to traverse the DataListItemCollection.
    dataListEnumerator = myDataList.Items.GetEnumerator()
    while(dataListEnumerator.MoveNext())
        currentItem = CType(dataListEnumerator.Current,DataListItem)
        ' Display the current DataListItem onto the label.
        lblAllItems.Text = lblAllItems.Text & CType((currentItem.Controls(1)), _
        Label).Text & "  "
    End While
End Sub
' </Snippet5>

' <Snippet6>
Sub ItemSelected(sender As object, e As EventArgs)
    ' Get the underlying DataListItemCollection from the DataList object.
    Dim myDataListItemCollection As DataListItemCollection  = myDataList.Items
    ' Get the index of the selected radio button in the RadioButtonList.
    Dim index As Integer = Convert.ToInt16(listItemNo.SelectedItem.Value)
    ' Get the DataListItem corresponding to index from DataList.
    ' SyncRoot is used to make access to the DataListItemCollection 
    ' in a thread-safe manner It returns the object that invoked it. 
    Dim currentItem As DataListItem = _ 
        CType(myDataListItemCollection.SyncRoot,DataListItemCollection)(index)
    ' Display the selected DataListItem onto a label.
    lblDisplay.Text = "<b>DataListItem" & index & " is: " _
        & CType(currentItem.Controls(1),Label).Text
    currentItem = Nothing
    myDataListItemCollection = Nothing
End Sub
    ' </Snippet6>

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>
        DataListItemCollection Example
    </title>
</head>
<body>
<form runat="server" id="Form1">
    <h3>
        DataListItemCollection Example
    </h3>
    <table>
        <tr>
            <td>
                <asp:datalist id="myDataList" runat="server" Font-Size="8pt" 
                    Font-Names="Verdana" BorderColor="black" CellSpacing="5"
                    CellPadding="10" GridLines="Horizontal">
                    <HeaderStyle BackColor="#aaaadd"></HeaderStyle>
                    <HeaderTemplate>
                        EmployeeName EmployeeID
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:Label id="label1"  runat="server"
                            Text='<%# DataBinder.Eval(Container.DataItem, "EmployeeName") %>' />
                        &nbsp;&nbsp;&nbsp;&nbsp;
                        <%# DataBinder.Eval(Container.DataItem, "EmployeeID")%>
                    </ItemTemplate>
                </asp:datalist>
            </td>
            <td>
                <asp:label id="lblAllItems1" 
                    Text="The following items <br /> are copied to the array: " 
                    Runat="server" ForeColor="blue" Font-Bold="true" 
                    AssociatedControlID="listItemNo">
                    The following items <br /> are copied to the array:
                </asp:label>
            </td>
            <td>
                &nbsp;&nbsp;&nbsp; <b>Show Items:</b>
                <asp:RadioButtonList ID="listItemNo" 
                    OnSelectedIndexChanged="itemSelected" AutoPostBack="true" 
                    Runat="server">
                    <asp:ListItem Value="0" Text="0"></asp:ListItem>
                    <asp:ListItem Value="1" Text="1"></asp:ListItem>
                    <asp:ListItem Value="2" Text="2"></asp:ListItem>
                </asp:RadioButtonList>
            </td>
            <td>
                <asp:Label ID="lblDisplay" Runat="server" />
            </td>
        </tr>
    </table>
    <p>
        <asp:button id="show" onclick="show_Click" Runat="server" 
            Font-Bold="True" Text="DataList Information" />
        <asp:button id="allitems" onclick="allItems_Click" Runat="server" 
            Font-Bold="True" Text="Show All DataListItems" />
    </p>
    <p>
        <b>All DataList items will be shown here:</b>
        <asp:label id="lblAllItems" Runat="server" ForeColor="blue" />
    </p>
</form>
</body>
</html>

注釈

クラスDataListItemCollectionは、オブジェクトのDataListItemコレクションを表します。これは、 DataListコントロールのデータ項目を表します。The DataListItemCollection class represents a collection of DataListItem objects, which in turn represent the data items in a DataList control. プログラムによっDataListItemDataListコントロールからオブジェクトを取得するには、次のいずれかの方法を使用します。To programmatically retrieve DataListItem objects from a DataList control, use one of the following methods:

  • 配列表記を使用して、 DataListItemコレクションから1つのオブジェクトを取得するには、インデクサーを使用します。Use the indexer to get a single DataListItem object from the collection, using array notation.

  • メソッドを使用して、コレクションの内容をSystem.Arrayオブジェクトにコピーします。このオブジェクトを使用して、コレクションから項目を取得できます。 CopyToUse the CopyTo method to copy the contents of the collection to a System.Array object, which can then be used to get items from the collection.

  • メソッドをGetEnumerator使用して、 System.Collections.IEnumeratorコレクションから項目を取得するために使用できるインターフェイスを作成します。Use the GetEnumerator method to create a System.Collections.IEnumerator interface, which can then be used to get items from the collection.

プロパティCountは、コレクション内の項目の合計数を指定し、一般的にコレクションの上限を決定するために使用されます。The Count property specifies the total number of items in the collection and is commonly used to determine the upper bound of the collection.

コンストラクター

DataListItemCollection(ArrayList) DataListItemCollection(ArrayList) DataListItemCollection(ArrayList) DataListItemCollection(ArrayList)

DataListItemCollection クラスの新しいインスタンスを初期化します。Initializes a new instance of the DataListItemCollection class.

プロパティ

Count Count Count Count

コレクション内の DataListItem オブジェクト数を取得します。Gets the number of DataListItem objects in the collection.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

DataListItem 内の DataListItemCollection オブジェクトを変更できるかどうかを示す値を取得します。Gets a value that indicates whether the DataListItem objects in the DataListItemCollection can be modified.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

DataListItemCollection へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。Gets a value indicating whether access to the DataListItemCollection is synchronized (thread-safe).

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

コレクション内の指定したインデックス位置の DataListItem オブジェクトを取得します。Gets a DataListItem object at the specified index in the collection.

SyncRoot SyncRoot SyncRoot SyncRoot

DataListItemCollection コレクションへのアクセスを同期するために使用できるオブジェクトを取得します。Gets the object that can be used to synchronize access to the DataListItemCollection collection.

メソッド

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

指定した DataListItemCollection オブジェクトに Array コレクションのすべての項目をコピーします。コピー操作は、Array オブジェクトの指定したインデックス位置から始まります。Copies all the items from this DataListItemCollection collection to the specified Array object, starting at the specified index in the Array object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

IEnumerator 内のすべての DataListItem オブジェクトを保持する DataListItemCollection インターフェイスを返します。Returns a IEnumerator interface that contains all DataListItem objects in the DataListItemCollection.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

拡張メソッド

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.

適用対象

こちらもご覧ください