DetailsViewModeEventArgs クラス
アセンブリ: System.Web (system.web.dll 内)
構文
解説DetailsView コントロールが編集、挿入、および読み取り専用の各モード間の変更を行おうとすると、実際にモードが変わる前に ModeChanging イベントが発生します。これにより、このイベントが発生するたびにカスタム ルーチン (DetailsView コントロールを特定のモード用に構成したり、モードの変更をキャンセルしたりするなど) を実行するイベント ハンドラを提供できます。
DetailsViewModeEventArgs オブジェクトがイベント ハンドラに渡されることにより、DetailsView コントロールの変更後のモードを確認したり、ユーザーが編集操作や挿入操作をキャンセルした結果として ModeChanging イベントが発生したのかどうかを確認したりできます。また、挿入操作をキャンセルする必要があることを示すこともできます。新しいモードを確認するには、NewMode プロパティを使用します。また、NewMode プロパティを DetailsViewMode 列挙値のいずれかに設定することによって、別のモードに変更することもできます。CancelingEdit プロパティを使用して、ユーザーが編集操作をキャンセルしたのかどうかを確認できます。挿入操作をキャンセルするには、Cancel プロパティを true に設定します。
イベント処理の詳細については、「イベントの利用」を参照してください。
DetailsViewModeEventArgs クラスのインスタンスの初期プロパティ値の一覧については、DetailsViewModeEventArgs コンストラクタのトピックを参照してください。
使用例ModeChanging イベントのイベント ハンドラに渡される DetailsViewModeEventArgs オブジェクトを使用して、DetailsView コントロールが編集モードに移行するときにページ行を非表示にする方法のコード例を次に示します。
<%@ 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>DetailsViewModeEventArgs 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>DetailsViewModeEventArgs 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>
.NET Framework のセキュリティ
継承階層System.EventArgs
System.ComponentModel.CancelEventArgs
System.Web.UI.WebControls.DetailsViewModeEventArgs
スレッド セーフ
プラットフォーム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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照- DetailsViewModeEventArgs クラスのページへのリンク