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

Public Delegate Sub DetailsViewModeEventHandler ( _ sender As Object, _ e As DetailsViewModeEventArgs _ )
/** @delegate */ public delegate void DetailsViewModeEventHandler ( Object sender, DetailsViewModeEventArgs e )

DetailsView コントロールが編集、挿入、および読み取り専用の各モード間の変更を行おうとすると、実際にモードが変わる前に ModeChanging イベントが発生します。これにより、このイベントが発生するたびにカスタム ルーチン (DetailsView コントロールを特定のモード用に構成したり、モードの変更をキャンセルしたりするなど) を実行するイベント ハンドラを提供できます。
DetailsViewModeEventHandler デリゲートを作成する場合は、イベントを処理するメソッドを識別してください。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、そのイベントが発生すると常にイベント ハンドラが呼び出されます。イベント ハンドラ デリゲートの詳細については、「イベントとデリゲート」を参照してください。

DetailsViewModeEventHandler デリゲートを、プログラムによって DetailsView コントロールの ModeChanging イベントに追加する方法のコード例を次に示します。
<%@ 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.AutoGenerateEditButton = True customerDetailsView.AllowPaging = True Dim keyArray() As String = {"CustomerID"} customerDetailsView.DataKeyNames = keyArray ' Programmatically register the event-handling method ' for the ItemInserted event of a DetailsView control. AddHandler customerDetailsView.ModeChanging, AddressOf CustomerDetailsView_ModeChanging ' Add the DetailsView object to the Controls collection ' of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView) End Sub Sub CustomerDetailsView_ModeChanging(ByVal sender As Object, ByVal e As DetailsViewModeEventArgs) ' Use the sender parameter to access the DetailsView ' control that raised the event. Dim customerDetailsView As DetailsView = CType(sender, DetailsView) ' Use the NewMode property to determine the mode to which the ' DetailsView control is transitioning. Select Case e.NewMode Case DetailsViewMode.Edit ' Hide the pager row and clear the Label control ' when transitioning to edit mode. customerDetailsView.AllowPaging = False MessageLabel.Text = "" Case DetailsViewMode.ReadOnly ' Display the pager row and confirmation message ' when transitioning to edit mode. customerDetailsView.AllowPaging = True If e.CancelingEdit Then MessageLabel.Text = "Update canceled." Else MessageLabel.Text = "Update completed." End If Case DetailsViewMode.Insert ' Cancel the mode change if the DetailsView ' control attempts to transition to insert ' mode. e.Cancel = True Case Else MessageLabel.Text = "Unsupported mode." End Select End Sub </script> <html> <body> <form runat="server"> <h3>DetailsViewModeEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:PlaceHolder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> <asp:label id="MessageLabel" forecolor="Red" 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]" updatecommand="Update [Customers] Set [CompanyName]=@CompanyName, [Address]=@Address, [City]=@City, [PostalCode]=@PostalCode, [Country]=@Country Where [CustomerID]=@CustomerID" 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.AutoGenerateEditButton = true; customerDetailsView.AllowPaging = true; customerDetailsView.DataKeyNames = new String[1] { "CustomerID" }; // Programmatically register the event-handling method // for the ItemInserted event of a DetailsView control. customerDetailsView.ModeChanging += new DetailsViewModeEventHandler(this.CustomerDetailsView_ModeChanging); // Add the DetailsView object to the Controls collection // of the PlaceHolder control. DetailsViewPlaceHolder.Controls.Add(customerDetailsView); } void CustomerDetailsView_ModeChanging(Object sender, DetailsViewModeEventArgs e) { // Use the sender parameter to access the DetailsView // control that raised the event. DetailsView customerDetailsView = (DetailsView)sender; // Use the NewMode property to determine the mode to which the // DetailsView control is transitioning. switch (e.NewMode) { case DetailsViewMode.Edit: // Hide the pager row and clear the Label control // when transitioning to edit mode. customerDetailsView.AllowPaging = false; MessageLabel.Text = ""; break; case DetailsViewMode.ReadOnly: // Display the pager row and confirmation message // when transitioning to edit mode. customerDetailsView.AllowPaging = true; if (e.CancelingEdit) { MessageLabel.Text = "Update canceled."; } else { MessageLabel.Text = "Update completed."; } break; case DetailsViewMode.Insert: // Cancel the mode change if the DetailsView // control attempts to transition to insert // mode. e.Cancel = true; break; default: MessageLabel.Text = "Unsupported mode."; break; } } </script> <html> <body> <form runat="server"> <h3>DetailsViewModeEventHandler Example</h3> <!-- Use a PlaceHolder control as the container for the --> <!-- dynamically generated DetailsView control. --> <asp:PlaceHolder id="DetailsViewPlaceHolder" runat="server"/> <br/><br/> <asp:label id="MessageLabel" forecolor="Red" 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]" updatecommand="Update [Customers] Set [CompanyName]=@CompanyName, [Address]=@Address, [City]=@City, [PostalCode]=@PostalCode, [Country]=@Country Where [CustomerID]=@CustomerID" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
DetailsViewModeEventHandler デリゲートを、宣言によって DetailsView コントロールの ModeChanging イベントに追加する方法のコード例を次に示します。
<%@ Page language="VB" autoeventwireup="false" %> <script runat="server"> Sub CustomerDetailsView_ModeChanging(ByVal sender As Object, ByVal e As DetailsViewModeEventArgs) Handles CustomerDetailsView.ModeChanging ' Use the NewMode property to determine the mode to which the ' DetailsView control is transitioning. Select Case e.NewMode Case DetailsViewMode.Edit ' Hide the pager row and clear the Label control ' when transitioning to edit mode. CustomerDetailsView.AllowPaging = False MessageLabel.Text = "" Case DetailsViewMode.ReadOnly ' Display the pager row and confirmation message ' when transitioning to edit mode. CustomerDetailsView.AllowPaging = True If e.CancelingEdit Then MessageLabel.Text = "Update canceled." Else MessageLabel.Text = "Update completed." End If Case DetailsViewMode.Insert ' Cancel the mode change if the DetailsView ' control attempts to transition to insert ' mode. e.Cancel = True Case Else MessageLabel.Text = "Unsupported mode." End Select End Sub </script> <html> <body> <form runat="server"> <h3>DetailsViewModeEventHandler Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" datakeynames="CustomerID" autogeneraterows="true" autogenerateeditbutton="true" allowpaging="true" runat="server"> </asp:detailsview> <br/><br/> <asp:label id="MessageLabel" forecolor="Red" 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]" updatecommand="Update [Customers] Set [CompanyName]=@CompanyName, [Address]=@Address, [City]=@City, [PostalCode]=@PostalCode, [Country]=@Country Where [CustomerID]=@CustomerID" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
<%@ Page language="C#" %> <script runat="server"> void CustomerDetailsView_ModeChanging(Object sender, DetailsViewModeEventArgs e) { // Use the NewMode property to determine the mode to which the // DetailsView control is transitioning. switch (e.NewMode) { case DetailsViewMode.Edit: // Hide the pager row and clear the Label control // when transitioning to edit mode. CustomerDetailsView.AllowPaging = false; MessageLabel.Text = ""; break; case DetailsViewMode.ReadOnly: // Display the pager row and confirmation message // when transitioning to edit mode. CustomerDetailsView.AllowPaging = true; if (e.CancelingEdit) { MessageLabel.Text = "Update canceled."; } else { MessageLabel.Text = "Update completed."; } break; case DetailsViewMode.Insert: // Cancel the mode change if the DetailsView // control attempts to transition to insert // mode. e.Cancel = true; break; default: MessageLabel.Text = "Unsupported mode."; break; } } </script> <html> <body> <form runat="server"> <h3>DetailsViewModeEventHandler Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" datakeynames="CustomerID" autogeneraterows="true" autogenerateeditbutton="true" allowpaging="true" onmodechanging="CustomerDetailsView_ModeChanging" runat="server"> </asp:detailsview> <br/><br/> <asp:label id="MessageLabel" forecolor="Red" 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]" updatecommand="Update [Customers] Set [CompanyName]=@CompanyName, [Address]=@Address, [City]=@City, [PostalCode]=@PostalCode, [Country]=@Country Where [CustomerID]=@CustomerID" connectionstring= "<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </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に収録されているすべての辞書からDetailsViewModeEventHandler デリゲートを検索する場合は、下記のリンクをクリックしてください。

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