ListViewEditEventArgs Classe
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.
Fornisce i dati per l'evento ItemEditing.
public ref class ListViewEditEventArgs : System::ComponentModel::CancelEventArgs
public class ListViewEditEventArgs : System.ComponentModel.CancelEventArgs
type ListViewEditEventArgs = class
inherit CancelEventArgs
Public Class ListViewEditEventArgs
Inherits CancelEventArgs
- Ereditarietà
Esempio
Nell'esempio seguente viene illustrato come utilizzare l'oggetto ListViewEditEventArgs per annullare l'operazione di modifica quando l'utente tenta di aggiornare un elemento sospeso.
Importante
L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.
<%@ 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 Page_Load()
{
Message.Text = String.Empty;
}
//<Snippet2>
void ProductsListView_ItemEditing(Object sender, ListViewEditEventArgs e)
{
ListViewItem item = ProductsListView.Items[e.NewEditIndex];
Label dateLabel = (Label)item.FindControl("DiscontinuedDateLabel");
if (String.IsNullOrEmpty(dateLabel.Text))
return;
//Verify if the item is discontinued.
DateTime discontinuedDate = DateTime.Parse(dateLabel.Text);
if (discontinuedDate < DateTime.Now)
{
Message.Text = "You cannot edit a discontinued item.";
e.Cancel = true;
ProductsListView.SelectedIndex = -1;
}
}
//</Snippet2>
void DiscontinuedDateCalendar_OnSelectionChanged(Object sender, EventArgs e)
{
TextBox dateTextBox =
(TextBox)ProductsListView.EditItem.FindControl("DiscontinuedDateTextBox");
Calendar calendarObject = (Calendar)sender;
dateTextBox.Text = calendarObject.SelectedDate.ToString("d");
}
DateTime GetDateTime(object dateValue)
{
if (dateValue == DBNull.Value)
return DateTime.Now;
else
return (DateTime)dateValue;
}
protected void ProductsListView_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
{
// Clears the edit index selection when paging.
ProductsListView.EditIndex = -1;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView Edit Item Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>ListView Edit Item Example</h3>
<asp:Label ID="Message"
ForeColor="Red"
runat="server"/>
<br/>
<asp:ListView ID="ProductsListView"
DataSourceID="ProductsDataSource"
DataKeyNames="ProductID"
OnItemEditing="ProductsListView_ItemEditing"
ConvertEmptyStringToNull="true"
OnPagePropertiesChanging="ProductsListView_PagePropertiesChanging"
runat="server" >
<LayoutTemplate>
<table cellpadding="2" runat="server" id="tblProducts" width="640px">
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="ProductsDataPager" PageSize="12">
<Fields>
<asp:NextPreviousPagerField
ShowFirstPageButton="true" ShowLastPageButton="true"
FirstPageText="|<< " LastPageText=" >>|"
NextPageText=" > " PreviousPageText=" < " />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td valign="top">
<asp:LinkButton ID="EditButton" runat="server" Text="Edit" CommandName="Edit" />
</td>
<td valign="top">
<asp:Label ID="NameLabel" runat="server" Text='<%#Eval("Name") %>' />
</td>
<td valign="top">
<asp:Label ID="ProductNumberLabel" runat="server" Text='<%#Eval("ProductNumber") %>' />
</td>
<td>
<asp:Label ID="DiscontinuedDateLabel" runat="server"
Text='<%#Eval("DiscontinuedDate", "{0:d}") %>' />
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr style="background-color:#ADD8E6">
<td valign="top">
<asp:LinkButton ID="UpdateButton" runat="server"
CommandName="Update" Text="Update" /><br />
<asp:LinkButton ID="CancelButton" runat="server"
CommandName="Cancel" Text="Cancel" />
</td>
<td valign="top" colspan="2">
<asp:Label runat="server" ID="NameLabel"
AssociatedControlID="NameTextBox"
Text="Name"/>
<asp:TextBox ID="NameTextBox" runat="server"
Text='<%#Bind("Name") %>' MaxLength="50" /><br />
<asp:Label runat="server" ID="ProductNumberLabel"
AssociatedControlID="ProductNumberTextBox"
Text="Product Number" />
<asp:TextBox ID="ProductNumberTextBox" runat="server"
Text='<%#Bind("ProductNumber") %>' MaxLength="25" /><br />
</td>
<td>
<asp:Label runat="server" ID="DiscontinuedDateLabel"
AssociatedControlID="DiscontinuedDateTextBox"
Text="Discontinued Date"/>
<asp:TextBox ID="DiscontinuedDateTextBox" runat="server"
Text='<%# Bind("DiscontinuedDate", "{0:d}") %>'
MaxLength="10" /><br />
<asp:Calendar ID="DiscontinuedDateCalendar" runat="server"
SelectedDate='<%# GetDateTime(Eval("DiscontinuedDate")) %>'
OnSelectionChanged="DiscontinuedDateCalendar_OnSelectionChanged" />
</td>
</tr>
</EditItemTemplate>
</asp:ListView>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="ProductsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductID], [Name], [ProductNumber], [DiscontinuedDate]
FROM Production.Product"
UpdateCommand="UPDATE Production.Product
SET Name = @Name, ProductNumber = @ProductNumber, DiscontinuedDate = @DiscontinuedDate
WHERE ProductID = @ProductID">
</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">
<script runat="server">
Sub Page_Load()
Message.Text = String.Empty
End Sub
'<Snippet2>
Sub ProductsListView_ItemEditing(ByVal sender As Object, ByVal e As ListViewEditEventArgs)
Dim item As ListViewItem = ProductsListView.Items(e.NewEditIndex)
Dim dateLabel As Label = CType(item.FindControl("DiscontinuedDateLabel"), Label)
If String.IsNullOrEmpty(dateLabel.Text) Then _
Return
'Verify if the item is discontinued.
Dim discontinuedDate As DateTime = DateTime.Parse(dateLabel.Text)
If discontinuedDate < DateTime.Now Then
Message.Text = "You cannot edit a discontinued item."
e.Cancel = True
ProductsListView.SelectedIndex = -1
End If
End Sub
'</Snippet2>
Sub DiscontinuedDateCalendar_OnSelectionChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim dateTextBox As TextBox = _
CType(ProductsListView.EditItem.FindControl("DiscontinuedDateTextBox"), TextBox)
Dim calendarObject As Calendar = CType(sender, Calendar)
dateTextBox.Text = calendarObject.SelectedDate.ToString("d")
End Sub
Function GetDateTime(ByVal dateValue As Object) As DateTime
If dateValue Is DBNull.Value Then
Return DateTime.Now
Else
Return CType(dateValue, DateTime)
End If
End Function
Protected Sub ProductsListView_PagePropertiesChanging(ByVal sender As Object, _
ByVal e As PagePropertiesChangingEventArgs)
' Clears the edit index selection when paging.
ProductsListView.EditIndex = -1
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView Edit Item Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>ListView Edit Item Example</h3>
<asp:Label ID="Message"
ForeColor="Red"
runat="server"/>
<br/>
<asp:ListView ID="ProductsListView"
DataSourceID="ProductsDataSource"
DataKeyNames="ProductID"
OnItemEditing="ProductsListView_ItemEditing"
ConvertEmptyStringToNull="true"
OnPagePropertiesChanging="ProductsListView_PagePropertiesChanging"
runat="server" >
<LayoutTemplate>
<table cellpadding="2" runat="server" id="tblProducts" width="640px">
<tr runat="server" id="itemPlaceholder" />
</table>
<asp:DataPager runat="server" ID="ProductsDataPager" PageSize="12">
<Fields>
<asp:NextPreviousPagerField
ShowFirstPageButton="true" ShowLastPageButton="true"
FirstPageText="|<< " LastPageText=" >>|"
NextPageText=" > " PreviousPageText=" < " />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td valign="top">
<asp:LinkButton ID="EditButton" runat="server" Text="Edit" CommandName="Edit" />
</td>
<td valign="top">
<asp:Label ID="NameLabel" runat="server" Text='<%#Eval("Name") %>' />
</td>
<td valign="top">
<asp:Label ID="ProductNumberLabel" runat="server" Text='<%#Eval("ProductNumber") %>' />
</td>
<td>
<asp:Label ID="DiscontinuedDateLabel" runat="server"
Text='<%#Eval("DiscontinuedDate", "{0:d}") %>' />
</td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr style="background-color:#ADD8E6">
<td valign="top">
<asp:LinkButton ID="UpdateButton" runat="server"
CommandName="Update" Text="Update" /><br />
<asp:LinkButton ID="CancelButton" runat="server"
CommandName="Cancel" Text="Cancel" />
</td>
<td valign="top" colspan="2">
<asp:Label runat="server" ID="NameLabel"
AssociatedControlID="NameTextBox"
Text="Name"/>
<asp:TextBox ID="NameTextBox" runat="server"
Text='<%#Bind("Name") %>' MaxLength="50" /><br />
<asp:Label runat="server" ID="ProductNumberLabel"
AssociatedControlID="ProductNumberTextBox"
Text="Product Number" />
<asp:TextBox ID="ProductNumberTextBox" runat="server"
Text='<%#Bind("ProductNumber") %>' MaxLength="25" /><br />
</td>
<td>
<asp:Label runat="server" ID="DiscontinuedDateLabel"
AssociatedControlID="DiscontinuedDateTextBox"
Text="Discontinued Date"/>
<asp:TextBox ID="DiscontinuedDateTextBox" runat="server"
Text='<%# Bind("DiscontinuedDate", "{0:d}") %>'
MaxLength="10" /><br />
<asp:Calendar ID="DiscontinuedDateCalendar" runat="server"
SelectedDate='<%# GetDateTime(Eval("DiscontinuedDate")) %>'
OnSelectionChanged="DiscontinuedDateCalendar_OnSelectionChanged" />
</td>
</tr>
</EditItemTemplate>
</asp:ListView>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorks sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:SqlDataSource ID="ProductsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
SelectCommand="SELECT [ProductID], [Name], [ProductNumber], [DiscontinuedDate]
FROM Production.Product"
UpdateCommand="UPDATE Production.Product
SET Name = @Name, ProductNumber = @ProductNumber, DiscontinuedDate = @DiscontinuedDate
WHERE ProductID = @ProductID">
</asp:SqlDataSource>
</form>
</body>
</html>
Commenti
Il ListView controllo genera l'evento ItemEditing quando si fa clic su un pulsante Modifica, ma prima che l'elemento entri in ListView modalità di modifica. Un pulsante Modifica è un pulsante la cui CommandName
proprietà è impostata su "Modifica". In questo modo è possibile fornire un metodo di gestione degli eventi che esegue una routine personalizzata ogni volta che si verifica questo evento, ad esempio l'annullamento dell'operazione di modifica.
Un ListViewEditEventArgs oggetto viene passato al metodo di gestione degli eventi. Questo oggetto consente di determinare l'indice dell'elemento da modificare e di indicare che l'operazione di modifica deve essere annullata. Per annullare l'operazione di modifica, impostare la Cancel proprietà dell'oggetto ListViewEditEventArgs su true
.
Per un elenco dei valori iniziali delle proprietà per un'istanza di ListViewEditEventArgs, vedere il ListViewEditEventArgs costruttore .
Costruttori
ListViewEditEventArgs(Int32) |
Inizializza una nuova istanza della classe ListViewEditEventArgs. |
Proprietà
Cancel |
Ottiene o imposta un valore che indica se l'evento debba essere annullato. (Ereditato da CancelEventArgs) |
NewEditIndex |
Ottiene il valore di indice dell'elemento da modificare. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |