ListViewEditEventArgs Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje data pro událost ItemEditing.
public ref class ListViewEditEventArgs : System::ComponentModel::CancelEventArgs
public class ListViewEditEventArgs : System.ComponentModel.CancelEventArgs
type ListViewEditEventArgs = class
inherit CancelEventArgs
Public Class ListViewEditEventArgs
Inherits CancelEventArgs
- Dědičnost
Příklady
Následující příklad ukazuje, jak použít ListViewEditEventArgs objekt ke zrušení operace úprav, když se uživatel pokusí aktualizovat ukončenou položku.
Důležité
Tento příklad obsahuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba. Ve výchozím nastavení ASP.NET webové stránky ověřují, že uživatelský vstup neobsahuje skript nebo elementy HTML. Další informace najdete v tématu Přehled zneužití skriptů.
<%@ 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>
Poznámky
Ovládací ListView prvek vyvolá ItemEditing událost, když kliknete na tlačítko Upravit, ale před tím, než ListView položka přejde do režimu úprav. (Tlačítko Upravit je tlačítko, jehož CommandName
vlastnost je nastavená na Upravit.) To vám umožní poskytnout metodu zpracování událostí, která provádí vlastní rutinu pokaždé, když dojde k této události, například zrušení operace úprav.
Objekt ListViewEditEventArgs je předán metodě zpracování událostí. Tento objekt umožňuje určit index upravované položky a označit, že operace úprav by měla být zrušena. Pokud chcete operaci úprav zrušit, nastavte Cancel vlastnost objektu ListViewEditEventArgs na true
.
Seznam počátečních hodnot vlastností pro instanci ListViewEditEventArgsnástroje najdete v konstruktoru ListViewEditEventArgs .
Konstruktory
ListViewEditEventArgs(Int32) |
Inicializuje novou instanci ListViewEditEventArgs třídy. |
Vlastnosti
Cancel |
Získá nebo nastaví hodnotu označující, zda má být událost zrušena. (Zděděno od CancelEventArgs) |
NewEditIndex |
Získá index položky, která je upravována. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |