DetailsView.AutoGenerateEditButton Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un valor que indica si los controles integrados que permiten editar el registro actual se muestran en un control DetailsView.
public:
virtual property bool AutoGenerateEditButton { bool get(); void set(bool value); };
public virtual bool AutoGenerateEditButton { get; set; }
member this.AutoGenerateEditButton : bool with get, set
Public Overridable Property AutoGenerateEditButton As Boolean
Valor de propiedad
Es true
si se van a mostrar los controles integrados que permiten editar el registro actual; de lo contrario, false
. De manera predeterminada, es false
.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar la AutoGenerateEditButton propiedad para mostrar los controles integrados para editar el registro actual.
<%@ 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 AutoGenerateEditButton Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView AutoGenerateEditButton Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogenerateeditbutton="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 AutoGenerateEditButton Example</title>
</head>
<body>
<form id="Form1" runat="server">
<h3>DetailsView AutoGenerateEditButton Example</h3>
<asp:detailsview id="CustomerDetailView"
datasourceid="DetailsViewSource"
datakeynames="CustomerID"
autogenerateeditbutton="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>
Comentarios
Cuando un control de origen de datos que admite la actualización está enlazado a un DetailsView control, el DetailsView control puede aprovechar las funcionalidades del control de origen de datos y proporcionar funcionalidad de actualización automática.
Nota
Para que un control de origen de datos actualice los datos, su SqlDataSource.UpdateCommand propiedad debe establecerse con una instrucción de consulta de actualización.
Cuando la AutoGenerateEditButton propiedad se establece true
en , se muestra automáticamente un CommandField campo de fila con un botón Editar en el DetailsView control . Al hacer clic en el botón Editar, se coloca ese DetailsView control en modo de edición. Cuando se encuentra en modo de edición, cada campo enlazado del control que no es de solo lectura muestra el control de entrada adecuado, como un TextBox control, para el tipo de datos del campo. Esto permite al usuario modificar el valor del campo.
Cuando se hace clic, el botón Editar también se reemplaza por un botón Actualizar y un botón Cancelar. Al hacer clic en el botón Actualizar, se actualiza el registro en el origen de datos con cualquier cambio de valor y se devuelve el control al modo especificado por la DefaultMode propiedad . Al hacer clic en el botón Cancelar se abandonan los cambios de valor y se devuelve el control al modo predeterminado.
Nota
Para colocar un DetailsView control en modo de edición mediante programación, use el ChangeMode método .
Cuando la AutoGenerateRows propiedad también se establece true
en , el DetailsView control garantiza automáticamente que el campo o los campos especificados en la DataKeyNames propiedad sean de solo lectura.
Nota
A menos que implemente su propia funcionalidad de actualización, debe establecer la DataKeyNames propiedad para que funcione la característica de actualización automática.
Puede controlar la apariencia de las filas de datos cuando el DetailsView control está en modo de edición mediante la EditRowStyle propiedad . La configuración común suele incluir un color de fondo personalizado, un color de primer plano y propiedades de fuente.
El DetailsView control proporciona varios eventos que puede usar para realizar una acción personalizada cuando se actualiza un registro. En la tabla siguiente se enumeran los eventos disponibles.
Evento | Descripción |
---|---|
ItemUpdated | Se produce cuando se hace clic en el botón Actualizar, pero después de que el DetailsView control actualice el registro. Este evento se usa a menudo para comprobar los resultados de la operación de actualización. |
ItemUpdating | Se produce cuando se hace clic en el botón Actualizar, pero antes de que el DetailsView control actualice el registro. Este evento se usa a menudo para cancelar la operación de actualización. |
ModeChanged | Se produce después de que el control cambie los DetailsView modos. |
ModeChanging | Se produce antes de que el control cambie los DetailsView modos. Este evento se usa a menudo para cancelar el cambio de modo. |
El valor de AutoGenerateEditButton se almacena en estado de vista.