DetailsView.AutoGenerateInsertButton Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.