DetailsViewPageEventArgs クラス
アセンブリ: System.Web (system.web.dll 内)


DetailsView コントロールは、コントロール内のページャ ボタン (CommandName プロパティが "Page" に設定されたボタン) がクリックされたときに、DetailsView コントロールでページング操作を処理する前に PageIndexChanging イベントを発生させます。これにより、このイベントが発生したときにカスタム ルーチン (キャンセル操作やページング操作など) を実行するイベント ハンドラを提供できます。
![]() |
---|
DetailsViewPageEventArgs オブジェクトがイベント ハンドラに渡され、これによりユーザーが選択したページのインデックスを確認したり、ページング操作をキャンセルする必要があるかどうかを示したりできます。ユーザーが選択したページのインデックスを確認するには、NewPageIndex プロパティを使用します。ページング操作をキャンセルするには、DetailsViewPageEventArgs オブジェクトの Cancel プロパティを true に設定します。
イベント処理の詳細については、「イベントの利用」を参照してください。
DetailsViewPageEventArgs クラスのインスタンスの初期プロパティ値の一覧については、DetailsViewPageEventArgs コンストラクタのトピックを参照してください。

PageIndexChanging イベントのイベント ハンドラに渡される DetailsViewPageEventArgs オブジェクトを使用して、DetailsView コントロールが編集モードになっているときにユーザーが別のページに移動しようとした場合にページング操作をキャンセルする方法のコード例を次に示します。
<%@ Page language="VB" %> <script runat="server"> Sub CustomerDetailsView_PageIndexChanging(ByVal sender As Object, ByVal e As DetailsViewPageEventArgs) ' Cancel the paging operation if the DetailsView control ' in edit mode. If CustomerDetailsView.CurrentMode = DetailsViewMode.Edit Then e.Cancel = True ' Display an error message. Dim newPage As Integer = e.NewPageIndex + 1 MessageLabel.Text = "Please update the current record before to moving to page " & _ newPage.ToString() & "." End If End Sub Sub CustomerDetailsView_ModeChanging(ByVal sender As Object, ByVal e As DetailsViewModeEventArgs) ' Clear the message label when the user cancels edit mode. If e.CancelingEdit Then MessageLabel.Text = "" End If End Sub </script> <html> <body> <form runat="server"> <h3>DetailsViewPageEventArgs Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" autogeneraterows="true" autogenerateeditbutton="true" datakeynames="CustomerID" allowpaging="true" onpageindexchanging="CustomerDetailsView_PageIndexChanging" onmodechanging="CustomerDetailsView_ModeChanging" runat="server"> <pagersettings position="Bottom"/> </asp:detailsview> <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_PageIndexChanging(Object sender, DetailsViewPageEventArgs e) { // Cancel the paging operation if the DetailsView control // in edit mode. if (CustomerDetailsView.CurrentMode == DetailsViewMode.Edit) { e.Cancel = true; // Display an error message. int newPage = e.NewPageIndex + 1; MessageLabel.Text = "Please update the current record before to moving to page " + newPage.ToString() + "."; } } void CustomerDetailsView_ModeChanging(Object sender, DetailsViewModeEventArgs e) { // Clear the message label when the user cancels edit mode. if (e.CancelingEdit) { MessageLabel.Text = ""; } } </script> <html> <body> <form runat="server"> <h3>DetailsViewPageEventArgs Example</h3> <asp:detailsview id="CustomerDetailsView" datasourceid="DetailsViewSource" autogeneraterows="true" autogenerateeditbutton="true" datakeynames="CustomerID" allowpaging="true" onpageindexchanging="CustomerDetailsView_PageIndexChanging" onmodechanging="CustomerDetailsView_ModeChanging" runat="server"> <pagersettings position="Bottom"/> </asp:detailsview> <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>


System.EventArgs
System.ComponentModel.CancelEventArgs
System.Web.UI.WebControls.DetailsViewPageEventArgs


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


- DetailsViewPageEventArgs クラスのページへのリンク