Partilhar via


DetailsView.AutoGenerateInsertButton Propriedade

Definição

Obtém ou define um valor que indica se os controles internos para inserir um novo registro são exibidos em um controle DetailsView.

public:
 virtual property bool AutoGenerateInsertButton { bool get(); void set(bool value); };
public virtual bool AutoGenerateInsertButton { get; set; }
member this.AutoGenerateInsertButton : bool with get, set
Public Overridable Property AutoGenerateInsertButton As Boolean

Valor da propriedade

true para exibir os controles internos para inserir um novo registro; caso contrário, false. O padrão é false.

Exemplos

O exemplo de código a seguir demonstra como usar a AutoGenerateInsertButton propriedade para exibir os controles internos para inserir um novo registro em um DetailsView controle.


<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsView AutoGenerateInsertButton Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView AutoGenerateInsertButton Example</h3>
                
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          datakeynames="CustomerID"
          autogenerateinsertbutton="true"  
          autogeneraterows="true"
          allowpaging="true"  
          runat="server">
               
          <headerstyle backcolor="Navy"
            forecolor="White"/>
                    
        </asp:detailsview>
        
        <!-- 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">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsView AutoGenerateInsertButton Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView AutoGenerateInsertButton Example</h3>
                
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          datakeynames="CustomerID"
          autogenerateinsertbutton="true"  
          autogeneraterows="true"
          allowpaging="true"  
          runat="server">
               
          <headerstyle backcolor="Navy"
            forecolor="White"/>
                    
        </asp:detailsview>
        
        <!-- 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>

Comentários

Quando um controle de fonte de dados que dá suporte à inserção está associado a um DetailsView controle, o DetailsView controle pode aproveitar os recursos do controle da fonte de dados e fornecer funcionalidade de inserção automática.

Observação

Para que um controle de fonte de dados insira dados, sua SqlDataSource.InsertCommand propriedade deve ser definida com uma instrução de consulta insert.

Quando a AutoGenerateInsertButton propriedade é definida como true, um CommandField campo de linha com um botão Novo é exibido automaticamente no DetailsView controle . Clicar no botão Novo coloca esse DetailsView controle no modo de inserção. Quando no modo de inserção, cada campo associado no controle que não é somente leitura exibe o controle de entrada apropriado, como um TextBox controle, para o tipo de dados do campo. Isso permite que o usuário insira o valor do campo para o novo registro.

Quando clicado, o botão Novo também é substituído por um botão Inserir e um botão Cancelar. Clicar no botão Inserir insere o novo registro na fonte de dados e retorna o controle para o modo especificado pela DefaultMode propriedade . Clicar no botão Cancelar abandona a operação de inserção e retorna o controle para o modo padrão.

Observação

Para colocar uma linha no modo de inserção programaticamente, use o ChangeMode método .

Você pode controlar a aparência de um registro que está no modo de inserção usando a InsertRowStyle propriedade . As configurações comuns geralmente incluem uma cor da tela de fundo personalizada, cor de primeiro plano e propriedades de fonte.

O DetailsView controle fornece vários eventos que você pode usar para executar uma ação personalizada quando um novo registro é inserido. A tabela a seguir lista os eventos disponíveis.

Evento Descrição
ItemInserted Ocorre quando o botão Inserir é clicado, mas depois que o DetailsView controle insere o registro. Esse evento geralmente é usado para verificar os resultados da operação de inserção.
ItemInserting Ocorre quando o botão Inserir é clicado, mas antes que o DetailsView controle insira o registro. Esse evento geralmente é usado para cancelar a operação de inserção.
ModeChanged Ocorre após o controle alterar os DetailsView modos.
ModeChanging Ocorre antes que o controle altere os DetailsView modos. Esse evento geralmente é usado para cancelar a alteração de modo.

O valor de AutoGenerateInsertButton é armazenado no estado de exibição.

Aplica-se a

Confira também