DataList.OnItemCommand メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim e As DataListCommandEventArgs Me.OnItemCommand(e)

OnItemCommand メソッドを使用して ItemCommand イベントのカスタム ハンドラを提供します。
ItemCommand イベントは、DataList コントロールの任意のボタンがクリックされたときに発生します。通常、この機能は、DataList コントロールの Add などのカスタム CommandName 値のボタン コントロールがあるときに使用されます。
イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「方法 : Web フォーム アプリケーションでイベントを利用する」を参照してください。
OnItemCommand メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理することもできます。派生クラスでイベントを処理する場合は、この手法をお勧めします。
継承時の注意 派生クラスで OnItemCommand をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnItemCommand メソッドを呼び出してください。
ItemCommand イベントのハンドラを指定およびコード化して、DataList コントロールの項目を選択する方法のコード例を次に示します。
![]() |
---|
次のコード サンプルはシングルファイル コード モデルを使用しており、分離コード ファイルに直接コピーされた場合は正常に動作しない可能性があります。このコード サンプルは、拡張子が .aspx の空のテキスト ファイルにコピーする必要があります。Web フォームのコード モデルの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。 |
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <head> <script runat="server"> Function CreateDataSource() As ICollection ' Create sample data for the DataList control. Dim dt As DataTable = New DataTable() Dim dr As DataRow ' Define the columns of the table. dt.Columns.Add(New DataColumn("Item", GetType(Int32))) dt.Columns.Add(New DataColumn("Qty", GetType(Int32))) dt.Columns.Add(New DataColumn("Price", GetType(Double))) ' Populate the table with sample values. Dim i As Integer For i = 0 To 8 dr = dt.NewRow() dr(0) = i dr(1) = i * 2 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 ItemsList.DataSource = CreateDataSource() ItemsList.DataBind() End If End Sub Sub Item_Command(sender As Object, e As DataListCommandEventArgs) ' Set the SelectedIndex property to select an item in the DataList. ItemsList.SelectedIndex = e.Item.ItemIndex ' Rebind the data source to the DataList to refresh the control. ItemsList.DataSource = CreateDataSource() ItemsList.DataBind() End Sub </script> </head> <body> <form runat="server"> <h3>DataList Select Example</h3> Click <b>Select</b> to select an item. <br><br> <asp:DataList id="ItemsList" GridLines="Both" CellPadding="3" CellSpacing="0" OnItemCommand="Item_Command" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <SelectedItemStyle BackColor="Yellow"> </SelectedItemStyle> <HeaderTemplate> Items </HeaderTemplate> <ItemTemplate> <asp:LinkButton id="SelectButton" Text="Select" CommandName="Select" runat="server"/> Item <%# DataBinder.Eval(Container.DataItem, "Item") %> </ItemTemplate> <SelectedItemTemplate> Item: <asp:Label id="ItemLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' runat="server"/> <br> Quantity: <asp:Label id="QtyLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/> <br> Price: <asp:Label id="PriceLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>' runat="server"/> </SelectedItemTemplate> </asp:DataList> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <head> <script runat="server"> ICollection CreateDataSource() { // Create sample data for the DataList control. DataTable dt = new DataTable(); DataRow dr; // Define the columns of the table. dt.Columns.Add(new DataColumn("Item", typeof(Int32))); dt.Columns.Add(new DataColumn("Qty", typeof(Int32))); dt.Columns.Add(new DataColumn("Price", typeof(double))); // Populate the table with sample values. for (int i = 0; i < 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = i * 2; 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) { ItemsList.DataSource = CreateDataSource(); ItemsList.DataBind(); } } void Item_Command(Object sender, DataListCommandEventArgs e) { // Set the SelectedIndex property to select an item in the DataList. ItemsList.SelectedIndex = e.Item.ItemIndex; // Rebind the data source to the DataList to refresh the control. ItemsList.DataSource = CreateDataSource(); ItemsList.DataBind(); } </script> </head> <body> <form runat="server"> <h3>DataList Select Example</h3> Click <b>Select</b> to select an item. <br><br> <asp:DataList id="ItemsList" GridLines="Both" CellPadding="3" CellSpacing="0" OnItemCommand="Item_Command" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <SelectedItemStyle BackColor="Yellow"> </SelectedItemStyle> <HeaderTemplate> Items </HeaderTemplate> <ItemTemplate> <asp:LinkButton id="SelectButton" Text="Select" CommandName="Select" runat="server"/> Item <%# DataBinder.Eval(Container.DataItem, "Item") %> </ItemTemplate> <SelectedItemTemplate> Item: <asp:Label id="ItemLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' runat="server"/> <br> Quantity: <asp:Label id="QtyLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/> <br> Price: <asp:Label id="PriceLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>' runat="server"/> </SelectedItemTemplate> </asp:DataList> </form> </body> </html>
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <head> <script runat="server"> Function CreateDataSource() As ICollection ' Create sample data for the DataList control. Dim dt As DataTable = New DataTable() Dim dr As DataRow ' Define the columns of the table. dt.Columns.Add(New DataColumn("Item", GetType(Int32))) dt.Columns.Add(New DataColumn("Qty", GetType(Int32))) dt.Columns.Add(New DataColumn("Price", GetType(Double))) ' Populate the table with sample values. Dim i As Integer For i = 0 To 8 dr = dt.NewRow() dr(0) = i dr(1) = i * 2 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 ItemsList.DataSource = CreateDataSource() ItemsList.DataBind() End If ' Manually register the event-handling method for the ' ItemCommand event. AddHandler ItemsList.ItemCommand, AddressOf Item_Command End Sub Sub Item_Command(sender As Object, e As DataListCommandEventArgs) ' Set the SelectedIndex property to select an item in the DataList. ItemsList.SelectedIndex = e.Item.ItemIndex ' Rebind the data source to the DataList to refresh the control. ItemsList.DataSource = CreateDataSource() ItemsList.DataBind() End Sub </script> </head> <body> <form runat="server"> <h3>DataList Select Example</h3> Click <b>Select</b> to select an item. <br><br> <asp:DataList id="ItemsList" GridLines="Both" CellPadding="3" CellSpacing="0" OnItemCommand="Item_Command" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <SelectedItemStyle BackColor="Yellow"> </SelectedItemStyle> <HeaderTemplate> Items </HeaderTemplate> <ItemTemplate> <asp:LinkButton id="SelectButton" Text="Select" CommandName="Select" runat="server"/> Item <%# DataBinder.Eval(Container.DataItem, "Item") %> </ItemTemplate> <SelectedItemTemplate> Item: <asp:Label id="ItemLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' runat="server"/> <br> Quantity: <asp:Label id="QtyLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/> <br> Price: <asp:Label id="PriceLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>' runat="server"/> </SelectedItemTemplate> </asp:DataList> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <head> <script runat="server"> ICollection CreateDataSource() { // Create sample data for the DataList control. DataTable dt = new DataTable(); DataRow dr; // Define the columns of the table. dt.Columns.Add(new DataColumn("Item", typeof(Int32))); dt.Columns.Add(new DataColumn("Qty", typeof(Int32))); dt.Columns.Add(new DataColumn("Price", typeof(double))); // Populate the table with sample values. for (int i = 0; i < 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = i * 2; 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) { ItemsList.DataSource = CreateDataSource(); ItemsList.DataBind(); } // Manually register the event-handling method for the // ItemCommand event. ItemsList.ItemCommand += new DataListCommandEventHandler(this.Item_Command); } void Item_Command(Object sender, DataListCommandEventArgs e) { // Set the SelectedIndex property to select an item in the DataList. ItemsList.SelectedIndex = e.Item.ItemIndex; // Rebind the data source to the DataList to refresh the control. ItemsList.DataSource = CreateDataSource(); ItemsList.DataBind(); } </script> </head> <body> <form runat="server"> <h3>DataList Select Example</h3> Click <b>Select</b> to select an item. <br><br> <asp:DataList id="ItemsList" GridLines="Both" CellPadding="3" CellSpacing="0" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <SelectedItemStyle BackColor="Yellow"> </SelectedItemStyle> <HeaderTemplate> Items </HeaderTemplate> <ItemTemplate> <asp:LinkButton id="SelectButton" Text="Select" CommandName="Select" runat="server"/> Item <%# DataBinder.Eval(Container.DataItem, "Item") %> </ItemTemplate> <SelectedItemTemplate> Item: <asp:Label id="ItemLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' runat="server"/> <br> Quantity: <asp:Label id="QtyLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/> <br> Price: <asp:Label id="PriceLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>' runat="server"/> </SelectedItemTemplate> </asp:DataList> </form> </body> </html>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からDataList.OnItemCommand メソッドを検索する場合は、下記のリンクをクリックしてください。

- DataList.OnItemCommand メソッドのページへのリンク