DetailsView.CurrentMode DetailsView.CurrentMode DetailsView.CurrentMode DetailsView.CurrentMode Property

Определение

Возвращает текущий режим ввода данных элемента управления DetailsView.Gets the current data-entry mode of the DetailsView control.

public:
 property System::Web::UI::WebControls::DetailsViewMode CurrentMode { System::Web::UI::WebControls::DetailsViewMode get(); };
[System.ComponentModel.Browsable(false)]
public System.Web.UI.WebControls.DetailsViewMode CurrentMode { get; }
member this.CurrentMode : System.Web.UI.WebControls.DetailsViewMode
Public ReadOnly Property CurrentMode As DetailsViewMode

Значение свойства

Одно из значений перечисления DetailsViewMode.One of the DetailsViewMode values.

Примеры

В следующем примере кода показано, как использовать CurrentMode свойство, чтобы определить, находится DetailsView ли элемент управления в режиме правки, вставки или только для чтения.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. Если пользователь пытается переходить к другой записи, когда DetailsView элемент управления находится в режиме редактирования, операция разбиения на страницы отменяется.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="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">


    void CustomerDetailView_ItemCommand(Object sender, 
      DetailsViewCommandEventArgs e)
    {
        // Clear the error message if the user cancels the edit 
        // operation.
        if (e.CommandName == "Cancel")
        {
            ErrorMessageLabel.Text = "";
        }
    }

    protected void CustomerDetailView_PageIndexChanging(
      object sender, DetailsViewPageEventArgs e)
    {
        // Cancel the paging operation if the user tries to 
        // navigate to another record while in edit mode.
        if (CustomerDetailView.CurrentMode == DetailsViewMode.Edit)
        {
            e.Cancel = true;
            // Display an error message.
            ErrorMessageLabel.Text = 
              "You cannot navigate to another record while in edit mode.";
        }

    }
</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>

<%@ 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>

Комментарии

Используйте свойство, чтобы определить, находится DetailsView ли элемент управления в режиме правки, вставки или только для чтения. CurrentModeUse 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 DetailsView Элемент управления находится в режиме редактирования, который позволяет пользователю обновлять значения записи.The DetailsView control is in edit mode, which allows the user to update the values of a record.
DetailsViewMode.Insert DetailsView Элемент управления находится в режиме вставки, который позволяет пользователю добавить новую запись в источник данных.The DetailsView control is in insert mode, which allows the user to add a new record to the data source.
DetailsViewMode.ReadOnly DetailsView Элемент управления находится в режиме только для чтения, который является нормальным режимом экрана.The DetailsView control is in read-only mode, which is the normal display mode.

Обычно это значение устанавливается автоматически DetailsView элементом управления при нажатии кнопки Создать, обновить, вставить, удалить или отменить.This value is normally set automatically by the DetailsView control by when the New, Update, Insert, Delete, or Cancel command button is clicked. Можно также программно изменить режим с помощью ChangeMode метода.You can also programmatically change the mode by using the ChangeMode method.

При изменении режима управления происходит событие в следующей таблице. DetailsViewWhen 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
ModeChanged Происходит при нажатии кнопки Command, которая изменяет режим DetailsView элемента управления, но после изменения режима.Occurs when a command button that changes the mode of the DetailsView control is clicked, but after the mode changes.
ModeChanging Происходит при нажатии кнопки Command, которая изменяет режим DetailsView элемента управления, но до изменения режима.Occurs when a command button that changes the mode of the DetailsView control is clicked, but before the mode changes.

Применяется к

Дополнительно