DetailsViewCommandEventHandler デリゲート
アセンブリ: System.Web (system.web.dll 内)

Public Delegate Sub DetailsViewCommandEventHandler ( _ sender As Object, _ e As DetailsViewCommandEventArgs _ )
public delegate void DetailsViewCommandEventHandler ( Object sender, DetailsViewCommandEventArgs e )
public delegate void DetailsViewCommandEventHandler ( Object^ sender, DetailsViewCommandEventArgs^ e )
/** @delegate */ public delegate void DetailsViewCommandEventHandler ( Object sender, DetailsViewCommandEventArgs e )

ButtonField、CommandField、または TemplateField 行フィールド内のボタンがクリックされると、DetailsView コントロールが ItemCommand イベントを発生させます。これにより、このイベントが発生するたびにカスタム ルーチンを実行するイベント ハンドラを提供できます。
![]() |
---|
また、DetailsView コントロールは、特定のボタン (CommandName プロパティが "Delete"、"Insert"、"Page"、または "Update" に設定されているボタン) がクリックされた場合、その他の特別なイベントを発生させます。これらのボタンを使用する場合は、コントロールから提供される特別なイベントのいずれか (ItemDeleted や ItemDeleting など) の使用を考慮する必要があります。 |
DetailsViewCommandEventHandler デリゲートを作成する場合は、イベントを処理するメソッドを識別してください。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、そのイベントが発生すると常にイベント ハンドラが呼び出されます。イベント ハンドラ デリゲートの詳細については、「イベントとデリゲート」を参照してください。

DetailsViewCommandEventHandler デリゲートを、プログラムによって DetailsView コントロールの ItemCommand イベントに追加する方法のコード例を次に示します。この例ではシングル ファイルのコーディング モデルを使用します。
<%@ page language="VB" %> <script runat="server"> Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) ' Create a new DetailsView object. Dim customerDetailsView As New DetailsView() ' Set the DetailsView object's properties. customerDetailsView.ID = "CustomerDetailsView" customerDetailsView.DataSourceID = "DetailsViewSource" customerDetailsView.AutoGenerateRows = True customerDetailsView.AllowPaging = True Dim keyArray() As String = {"CustomerID"} customerDetailsView.DataKeyNames = keyArray ' Add a button field to the DetailsView control. Dim field As New ButtonField() field.ButtonType = ButtonType.Link field.CausesValidation = False field.Text = "Add to List" field.CommandName = "Add" customerDetailsView.Fields.Add(field) ' Programmatically register the event-handling method ' for the ItemDeleting event of a DetailsView control. AddHandler customerDetailsView.ItemCommand, _ AddressOf CustomerDetailsView_ItemCommand ' Add the DetailsView object to the Controls collection ' of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView) End Sub Sub CustomerDetailsView_ItemCommand(ByVal sender As Object, _ ByVal e As DetailsViewCommandEventArgs) ' Use the CommandName property to determine which button ' was clicked. If e.CommandName = "Add" Then ' Get the DetailsView control that raised the event. Dim customerDetailsView As DetailsView = _ CType(e.CommandSource, DetailsView) ' Add the current customer to the customer list. ' Get the row that contains the company name. In this ' example, the company name is in the second row (index 1) ' of the DetailsView control. Dim row As DetailsViewRow = customerDetailsView.Rows(1) ' Get the company's name from the appropriate cell. ' In this example, the company name is in the second cell ' (index 1) of the row. Dim name As String = row.Cells(1).Text ' Create a ListItem object with the company name. Dim item As New ListItem(name) ' Add the ListItem object to the ListBox, if the ' item doesn't already exist. If Not CustomerListBox.Items.Contains(item) Then CustomerListBox.Items.Add(item) End If End If End Sub </script> <html> <body> <form runat="server"> <h3>DetailsViewCommandEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:placeholder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> Selected Customers:<br/> <asp:listbox id="CustomerListBox" runat="server"/> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the web.config file. --> <asp:sqldatasource id="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
<%@ page language="C#" %> <script runat="server"> void Page_Load(Object sender, EventArgs e) { // Create a new DetailsView object. DetailsView customerDetailsView = new DetailsView(); // Set the DetailsView object's properties. customerDetailsView.ID = "CustomerDetailsView"; customerDetailsView.DataSourceID = "DetailsViewSource"; customerDetailsView.AutoGenerateRows = true; customerDetailsView.AllowPaging = true; customerDetailsView.DataKeyNames = new String[1] { "CustomerID" }; // Add a button field to the DetailsView control. ButtonField field = new ButtonField(); field.ButtonType = ButtonType.Link; field.CausesValidation = false; field.Text = "Add to List"; field.CommandName="Add"; customerDetailsView.Fields.Add(field); // Programmatically register the event-handling method // for the ItemDeleting event of a DetailsView control. customerDetailsView.ItemCommand += new DetailsViewCommandEventHandler( this.CustomerDetailsView_ItemCommand); // Add the DetailsView object to the Controls collection // of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView); } void CustomerDetailsView_ItemCommand(Object sender, DetailsViewCommandEventArgs e) { // Use the CommandName property to determine which button // was clicked. if (e.CommandName == "Add") { // Get the DetailsView control that raised the event. DetailsView customerDetailsView = (DetailsView)e.CommandSource; // Add the current customer to the customer list. // Get the row that contains the company name. In this // example, the company name is in the second row (index 1) // of the DetailsView control. DetailsViewRow row = customerDetailsView.Rows[1]; // Get the company's name from the appropriate cell. // In this example, the company name is in the second cell // (index 1) of the row. String name = row.Cells[1].Text; // Create a ListItem object with the company name. ListItem item = new ListItem(name); // Add the ListItem object to the ListBox, if the // item doesn't already exist. if (!CustomerListBox.Items.Contains(item)) { CustomerListBox.Items.Add(item); } } } </script> <html> <body> <form runat="server"> <h3>DetailsViewCommandEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:placeholder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> Selected Customers:<br/> <asp:listbox id="CustomerListBox" runat="server"/> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the web.config file. --> <asp:sqldatasource id="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
前の例の分離コード コーディング モデルを次のコード例に示します。この例を正常に動作させるには、以下のコードを関連付けられた分離コード ファイルにコピーする必要があります。
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="DefaultVB.aspx.vb" Inherits="DefaultVB" %> <html> <body> <form id="Form1" runat="server"> <h3>DetailsViewCommandEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:placeholder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> Selected Customers:<br/> <asp:listbox id="CustomerListBox" runat="server"/> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the web.config file. --> <asp:sqldatasource id="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <html> <body> <form id="Form1" runat="server"> <h3>DetailsViewCommandEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:placeholder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> Selected Customers:<br/> <asp:listbox id="CustomerListBox" runat="server"/> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the web.config file. --> <asp:sqldatasource id="DetailsViewSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring=" <%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
Partial Class DefaultVB Inherits System.Web.UI.Page Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load ' Create a new DetailsView object. Dim customerDetailsView As New DetailsView() ' Set the DetailsView object's properties. customerDetailsView.ID = "CustomerDetailsView" customerDetailsView.DataSourceID = "DetailsViewSource" customerDetailsView.AutoGenerateRows = True customerDetailsView.AllowPaging = True Dim keyArray() As String = {"CustomerID"} customerDetailsView.DataKeyNames = keyArray ' Add a button field to the DetailsView control. Dim field As New ButtonField() field.ButtonType = ButtonType.Link field.CausesValidation = False field.Text = "Add to List" field.CommandName = "Add" customerDetailsView.Fields.Add(field) ' Programmatically register the event-handling method ' for the ItemDeleting event of a DetailsView control. AddHandler customerDetailsView.ItemCommand, AddressOf CustomerDetailsView_ItemCommand ' Add the DetailsView object to the Controls collection ' of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView) End Sub Sub CustomerDetailsView_ItemCommand(ByVal sender As Object, ByVal e As DetailsViewCommandEventArgs) ' Use the CommandName property to determine which button ' was clicked. If e.CommandName = "Add" Then ' Get the DetailsView control that raised the event. Dim customerDetailsView As DetailsView = CType(sender, DetailsView) ' Add the current customer to the customer list. ' Get the row that contains the company name. In this ' example, the company name is in the second row (index 1) ' of the DetailsView control. Dim row As DetailsViewRow = customerDetailsView.Rows(1) ' Get the company's name from the appropriate cell. ' In this example, the company name is in the second cell ' (index 1) of the row. Dim name As String = row.Cells(1).Text ' Create a ListItem object with the company name. Dim item As New ListItem(name) ' Add the ListItem object to the ListBox, if the ' item doesn't already exist. If Not CustomerListBox.Items.Contains(item) Then CustomerListBox.Items.Add(item) End If End If End Sub End Class
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Create a new DetailsView object. DetailsView customerDetailsView = new DetailsView(); // Set the DetailsView object's properties. customerDetailsView.ID = "CustomerDetailsView"; customerDetailsView.DataSourceID = "DetailsViewSource"; customerDetailsView.AutoGenerateRows = true; customerDetailsView.AllowPaging = true; customerDetailsView.DataKeyNames = new String[1] { "CustomerID" }; // Add a button field to the DetailsView control. ButtonField field = new ButtonField(); field.ButtonType = ButtonType.Link; field.CausesValidation = false; field.Text = "Add to List"; field.CommandName = "Add"; customerDetailsView.Fields.Add(field); // Programmatically register the event-handling method // for the ItemDeleting event of a DetailsView control. customerDetailsView.ItemCommand += new DetailsViewCommandEventHandler(this.CustomerDetailsView_ItemCommand); // Add the DetailsView object to the Controls collection // of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView); } void CustomerDetailsView_ItemCommand(Object sender, DetailsViewCommandEventArgs e) { // Use the CommandName property to determine which button // was clicked. if (e.CommandName == "Add") { // Get the DetailsView control that raised the event. DetailsView customerDetailsView = (DetailsView)sender; // Add the current customer to the customer list. // Get the row that contains the company name. In this // example, the company name is in the second row (index 1) // of the DetailsView control. DetailsViewRow row = customerDetailsView.Rows[1]; // Get the company's name from the appropriate cell. // In this example, the company name is in the second cell // (index 1) of the row. String name = row.Cells[1].Text; // Create a ListItem object with the company name. ListItem item = new ListItem(name); // Add the ListItem object to the ListBox, if the // item doesn't already exist. if (!CustomerListBox.Items.Contains(item)) { CustomerListBox.Items.Add(item); } } } }
DetailsViewCommandEventHandler デリゲートを、宣言によって DetailsView コントロールの ItemCommand イベントに追加する方法のコード例を次に示します。
<%@ Page Language="VB" %> <script runat="server"> Sub CustomerDetailView_ItemCommand(ByVal sender As Object, ByVal e As DetailsViewCommandEventArgs) ' Use the CommandName property to determine which button ' was clicked. If e.CommandName = "Add" Then ' Add the current store to the contact list. ' Get the row that contains the store name. In this ' example, the store name is in the second row (index 1) ' of the DetailsView control. Dim row As DetailsViewRow = CustomerDetailView.Rows(1) ' Get the store's name from the appropriate cell. ' In this example, the store name is in the second cell ' (index 1) of the row. Dim name As String = row.Cells(1).Text ' Create a ListItem object with the store's name. Dim item As New ListItem(name) ' Add the ListItem object to the ListBox, if the ' item doesn't already exist. If Not ContactListBox.Items.Contains(item) Then ContactListBox.Items.Add(item) End If End If End Sub </script> <html> <body> <form id="Form1" runat="server"> <h3> DetailsView ItemCommand Example</h3> <asp:DetailsView ID="CustomerDetailView" DataSourceID="DetailsViewSource" AutoGenerateRows="false" DataKeyNames="CustomerID" AllowPaging="true" OnItemCommand="CustomerDetailView_ItemCommand" runat="server"> <FieldHeaderStyle BackColor="Navy" ForeColor="White" /> <Fields> <asp:BoundField DataField="CustomerID" HeaderText="Store ID" /> <asp:BoundField DataField="CompanyName" HeaderText="Store Name" /> <asp:BoundField DataField="City" HeaderText="City" /> <asp:ButtonField CommandName="Add" Text="Add Contact" /> </Fields> </asp:DetailsView> <hr /> Contacts:<br /> <asp:ListBox ID="ContactListBox" runat="server" /> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the web.config file. --> <asp:SqlDataSource ID="DetailsViewSource" runat="server" ConnectionString= "<%$ ConnectionStrings:NorthWindConnectionString%>" InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)" SelectCommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"> </asp:SqlDataSource> </form> </body> </html>
<%@ Page Language="C#" %> <script runat="server"> void CustomerDetailView_ItemCommand(Object sender, DetailsViewCommandEventArgs e) { // Use the CommandName property to determine which button // was clicked. if (e.CommandName == "Add") { // Add the current store to the contact list. // Get the row that contains the store name. In this // example, the store name is in the second row (index 1) // of the DetailsView control. DetailsViewRow row = CustomerDetailView.Rows[1]; // Get the store's name from the appropriate cell. // In this example, the store name is in the second cell // (index 1) of the row. String name = row.Cells[1].Text; // Create a ListItem object with the store's name. ListItem item = new ListItem(name); // Add the ListItem object to the ListBox, if the // item doesn't already exist. if (!ContactListBox.Items.Contains(item)) { ContactListBox.Items.Add(item); } } } </script> <html> <body> <form id="Form1" runat="server"> <h3> DetailsView ItemCommand Example</h3> <asp:DetailsView ID="CustomerDetailView" DataSourceID="DetailsViewSource" AutoGenerateRows="false" DataKeyNames="CustomerID" AllowPaging="true" OnItemCommand="CustomerDetailView_ItemCommand" runat="server"> <FieldHeaderStyle BackColor="Navy" ForeColor="White" /> <Fields> <asp:BoundField DataField="CustomerID" HeaderText="Store ID" /> <asp:BoundField DataField="CompanyName" HeaderText="Store Name" /> <asp:BoundField DataField="City" HeaderText="City" /> <asp:ButtonField CommandName="Add" Text="Add Contact" /> </Fields> </asp:DetailsView> <hr /> Contacts:<br /> <asp:ListBox ID="ContactListBox" runat="server" /> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the web.config file. --> <asp:SqlDataSource ID="DetailsViewSource" runat="server" ConnectionString= "<%$ ConnectionStrings:NorthWindConnectionString%>" InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)" SelectCommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"> </asp:SqlDataSource> </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に収録されているすべての辞書からDetailsViewCommandEventHandler デリゲートを検索する場合は、下記のリンクをクリックしてください。

- DetailsViewCommandEventHandler デリゲートのページへのリンク