DetailsViewUpdatedEventArgs.KeepInEditMode Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica se il controllo DetailsView deve rimanere in modalità di modifica dopo un'operazione di aggiornamento.
public:
property bool KeepInEditMode { bool get(); void set(bool value); };
public bool KeepInEditMode { get; set; }
member this.KeepInEditMode : bool with get, set
Public Property KeepInEditMode As Boolean
Valore della proprietà
true
per mantenere la modalità di modifica dopo un'operazione di aggiornamento, altrimenti false
. Il valore predefinito è false
.
Esempio
Nell'esempio di codice seguente viene illustrato come usare la KeepInEditMode proprietà per mantenere un controllo in modalità di modifica dopo un'operazione DetailsView di aggiornamento.
<%@ 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 CustomerDetailsView_ItemUpdated(Object sender,
DetailsViewUpdatedEventArgs e)
{
// Use the Exception property to determine whether an exception
// occurred during the insert operation.
if (e.Exception == null)
{
// Use the Values property to get the value entered by
// the user for the CompanyName field.
String keyFieldValue = e.Keys["CustomerID"].ToString();
// Display a confirmation message.
MessageLabel.Text = "Record " + keyFieldValue +
" updated successfully. ";
// Display the old and new values.
DisplayValues(e);
if (e.AffectedRows == 1)
{
MessageLabel.Text += e.AffectedRows.ToString() +
" record updated.";
}
else
{
MessageLabel.Text += e.AffectedRows.ToString() +
" records updated.";
}
}
else
{
// Insert the code to handle the exception.
MessageLabel.Text = e.Exception.Message;
// Use the ExceptionHandled property to indicate that the
// exception is already handled.
e.ExceptionHandled = true;
// When an exception occurs, keep the DetailsView
// control in edit mode.
e.KeepInEditMode = true;
}
}
void DisplayValues(DetailsViewUpdatedEventArgs e)
{
MessageLabel.Text += "<br/></br>";
// Iterate through the OldValue and NewValues
// properties and display the values.
for (int i = 0; i < e.OldValues.Count; i++)
{
MessageLabel.Text += "Old Value=" + e.OldValues[i].ToString() +
", New Value=" + e.NewValues[i].ToString() + "<br/>";
}
MessageLabel.Text += "</br>";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewUpdatedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewUpdatedEventArgs Example</h3>
<asp:detailsview id="CustomerDetailsView"
datasourceid="DetailsViewSource"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onitemupdated="CustomerDetailsView_ItemUpdated"
runat="server">
<pagersettings position="Bottom"/>
</asp:detailsview>
<br/>
<asp:label id="MessageLabel"
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"
selectcommand="Select [CustomerID], [CompanyName], [Address],
[City], [PostalCode], [Country] From [Customers]"
updatecommand="Update [Customers] Set
[CompanyName]=@CompanyName, [Address]=@Address,
[City]=@City, [PostalCode]=@PostalCode,
[Country]=@Country
Where [CustomerID]=@CustomerID"
connectionstring=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</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 CustomerDetailsView_ItemUpdated(ByVal sender As Object, ByVal e As DetailsViewUpdatedEventArgs)
' Use the Exception property to determine whether an exception
' occurred during the insert operation.
If e.Exception Is Nothing Then
' Use the Values property to get the value entered by
' the user for the CompanyName field.
Dim keyFieldValue As String = e.Keys("CustomerID").ToString()
' Display a confirmation message.
MessageLabel.Text = "Record " & keyFieldValue & _
" updated successfully. "
' Display the old and new values.
DisplayValues(e)
If e.AffectedRows = 1 Then
MessageLabel.Text &= e.AffectedRows.ToString() & _
" record updated."
Else
MessageLabel.Text &= e.AffectedRows.ToString() & _
" records updated."
End If
Else
' Insert the code to handle the exception.
MessageLabel.Text = e.Exception.Message
' Use the ExceptionHandled property to indicate that the
' exception is already handled.
e.ExceptionHandled = True
' When an exception occurs, keep the DetailsView
' control in edit mode.
e.KeepInEditMode = True
End If
End Sub
Sub DisplayValues(ByVal e As DetailsViewUpdatedEventArgs)
MessageLabel.Text &= "<br/></br>"
' Iterate through the OldValue and NewValues
' properties and display the values.
Dim i As Integer
For i = 0 To e.OldValues.Count - 1
MessageLabel.Text &= "Old Value=" & e.OldValues(i).ToString() & _
", New Value=" & e.NewValues(i).ToString() & "<br/>"
Next
MessageLabel.Text &= "</br>"
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewUpdatedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewUpdatedEventArgs Example</h3>
<asp:detailsview id="CustomerDetailsView"
datasourceid="DetailsViewSource"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onitemupdated="CustomerDetailsView_ItemUpdated"
runat="server">
<pagersettings position="Bottom"/>
</asp:detailsview>
<br/>
<asp:label id="MessageLabel"
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"
selectcommand="Select [CustomerID], [CompanyName], [Address],
[City], [PostalCode], [Country] From [Customers]"
updatecommand="Update [Customers] Set
[CompanyName]=@CompanyName, [Address]=@Address,
[City]=@City, [PostalCode]=@PostalCode,
[Country]=@Country
Where [CustomerID]=@CustomerID"
connectionstring=
"<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
Commenti
Per impostazione predefinita, il DetailsView controllo restituisce la modalità specificata dalla DefaultMode proprietà dopo un'operazione di aggiornamento. Utilizzare la KeepInEditMode proprietà per specificare se il DetailsView controllo deve rimanere in modalità di modifica. Per mantenere il DetailsView controllo in modalità di modifica, impostare questa proprietà su true
.
Nota
Questa proprietà deve essere usata se si vuole eseguire l'override della modalità predefinita in un'occasione specifica. Se il DetailsView controllo deve rimanere in modalità di modifica per impostazione predefinita, impostare invece la DefaultMode proprietà.