DetailsView.CurrentMode Property
Gets the current data-entry mode of the DetailsView control.
Assembly: System.Web (in System.Web.dll)
Use the CurrentMode property to determine whether the DetailsView control is in edit, insert, or read-only mode. The following table lists the different mode values.
Mode | Description |
|---|---|
DetailsViewMode.Edit | The DetailsView control is in edit mode, which allows the user to update the values of a record. |
DetailsViewMode.Insert | The DetailsView control is in insert mode, which allows the user to add a new record to the data source. |
DetailsViewMode.ReadOnly | The DetailsView control is in read-only mode, which is the normal display mode. |
This value is normally set automatically by the DetailsView control by when the New, Update, Insert, Delete, or Cancel command button is clicked. You can also programmatically change the mode by using the ChangeMode method.
When the DetailsView control changes modes, the events in the following table are raised. This allows you to create a custom event handler that performs a routine when the event occurs.
Event | Description |
|---|---|
Occurs when a command button that changes the mode of the DetailsView control is clicked, but after the mode changes. | |
Occurs when a command button that changes the mode of the DetailsView control is clicked, but before the mode changes. |
The following code example demonstrates how to use the CurrentMode property to determine whether the DetailsView control is in edit, insert, or read-only mode. If the user attempts to navigate to a different record while the DetailsView control is in edit mode, the paging operation is canceled.
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Sub CustomerDetailView_ItemCommand(ByVal sender As Object, _ ByVal e As DetailsViewCommandEventArgs) ' Clear the error message if the user cancels the edit ' operation. If e.CommandName = "Cancel" Then ErrorMessageLabel.Text = "" End If End Sub Protected Sub CustomerDetailView_PageIndexChanging( _ ByVal sender As Object, ByVal e As DetailsViewPageEventArgs) ' Cancel the paging operation if the user tries to navigate ' to another record while in edit mode. If CustomerDetailView.CurrentMode = DetailsViewMode.Edit Then e.Cancel = True ' Display an error message. ErrorMessageLabel.Text = _ "You cannot navigate to another record while in edit mode." End If End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> DetailsView CurrentMode Example</title> </head> <body> <form id="Form1" runat="server"> <h3> DetailsView CurrentMode Example</h3> <asp:DetailsView ID="CustomerDetailView" DataSourceID="DetailsViewSource" AutoGenerateRows="true" AutoGenerateEditButton="true" DataKeyNames="CustomerID" GridLines="Both" AllowPaging="true" OnItemCommand="CustomerDetailView_ItemCommand" runat="server" OnPageIndexChanging="CustomerDetailView_PageIndexChanging"> <HeaderStyle BackColor="Navy" ForeColor="White" /> </asp:DetailsView> <br /> <asp:Label ID="ErrorMessageLabel" 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" 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>
Available since 2.0