DetailsView.AutoGenerateInsertButton Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe ou define um valor que indica se os controlos incorporados para inserir um novo registo são exibidos num DetailsView controlo.
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 de Propriedade
true para mostrar os controlos incorporados para inserir um novo registo; caso contrário, false. A predefinição é false.
Exemplos
O exemplo de código seguinte demonstra como usar a AutoGenerateInsertButton propriedade para mostrar os controlos incorporados para inserir um novo registo num DetailsView controlo.
<%@ 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>
Observações
Quando um controlo de fonte de dados que suporta inserção está ligado a um DetailsView controlo, o controlo DetailsView pode tirar partido das capacidades do controlo de fonte de dados e fornecer funcionalidade de inserção automática.
Note
Para que um controlo de fonte de dados insira dados, a sua SqlDataSource.InsertCommand propriedade deve ser definida com uma instrução de consulta inserida.
Quando a AutoGenerateInsertButton propriedade é definida para true, um CommandField campo de linha com um botão Novo é automaticamente exibido no DetailsView controlo. Clicar no botão Novo coloca esse DetailsView controlo em modo de inserção. Quando está em modo de inserção, cada campo limitado no controlo que não é apenas leitura apresenta o controlo de entrada apropriado, como um TextBox controlo, para o tipo de dado do campo. Isto permite ao utilizador inserir o valor do campo para o novo registo.
Quando clicado, o botão Novo é também substituído por um botão Inserir e um botão Cancelar. Ao clicar no botão Inserir, insere o novo registo na fonte de dados e devolve o controlo ao modo especificado pela DefaultMode propriedade. Clicar no botão Cancelar abandona a operação de inserção e devolve o controlo ao modo predefinido.
Note
Para colocar uma linha em modo de inserção programaticamente, use o ChangeMode método.
Pode controlar a aparência de um registo que está em modo de inserção usando a InsertRowStyle propriedade. As definições comuns geralmente incluem uma cor de fundo personalizada, cor de primeiro plano e propriedades de fonte.
O DetailsView controlo fornece vários eventos que pode usar para realizar uma ação personalizada quando um novo registo é inserido. A tabela seguinte lista os eventos disponíveis.
| Event | Description |
|---|---|
| ItemInserted | Ocorre quando o botão Inserir é clicado, mas depois de o DetailsView controlo inserir o registo. Este evento é frequentemente usado para verificar os resultados da operação de inserção. |
| ItemInserting | Ocorre quando o botão Inserir é clicado, mas antes de o controlo DetailsView inserir o registo. Este evento é frequentemente usado para cancelar a operação de inserção. |
| ModeChanged | Ocorre depois de o DetailsView controlo mudar de modo. |
| ModeChanging | Ocorre antes do DetailsView controlo mudar de modo. Este evento é frequentemente usado para cancelar a mudança de modo. |
O valor de AutoGenerateInsertButton é armazenado no estado de visualização.