Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

DataList.OnItemCreated méthode (DataListItemEventArgs)

 

Date de publication : novembre 2016

Déclenche l'événement ItemCreated. Cela vous permet de fournir un gestionnaire personnalisé à l'événement.

Espace de noms:   System.Web.UI.WebControls
Assembly:  System.Web (dans System.Web.dll)

protected virtual void OnItemCreated(
	DataListItemEventArgs e
)

Paramètres

e
Type: System.Web.UI.WebControls.DataListItemEventArgs

Un DataListItemEventArgs qui contient les données d’événement.

Utilisez la OnItemCreated méthode pour fournir un gestionnaire personnalisé pour le ItemCreated événement.

Le ItemCreated événement est déclenché lorsqu’un élément dans le DataList contrôle est créé, à la fois au cours d’allers-retours et au moment où les données sont liées au contrôle.

Le ItemCreated événement est généralement utilisé pour contrôler le contenu et l’apparence d’une ligne dans le DataList contrôle.

Le déclenchement d'un événement appelle le gestionnaire des événements par l'intermédiaire d'un délégué. Pour plus d'informations, consultez Comment : consommer des événements dans une application Web Forms.

La méthode OnItemCreated permet également aux classes dérivées de gérer l'événement sans y attacher de délégué. Il s'agit de la méthode recommandée pour gérer l'événement dans une classe dérivée.

Remarques à l’attention des héritiers :

Lors de la substitution de OnItemCreated dans une classe dérivée, veillez à appeler la méthode OnItemCreated de la classe de base de manière à ce que les délégués inscrits reçoivent l'événement.

L’exemple de code suivant montre comment spécifier et coder un gestionnaire pour le ItemCreated événement afin d’afficher l’ordre dans lequel les éléments de la DataList contrôle sont créés.

System_CAPS_noteRemarque

L'exemple de code suivant utilise le modèle de code de fichier unique et peut ne pas fonctionne correctement si copiées directement dans un fichier code-behind. Cet exemple de code doit être copié dans un fichier texte vide qui a une extension .aspx. Pour plus d'informations sur le modèle de code Web Forms, consultez ASP.NET Web Forms Page Code Model.


<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<!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" >
   <script runat="server">

      ICollection CreateDataSource() 
      {

         // Create sample data for the DataList control.
         DataTable dt = new DataTable();
         DataRow dr;

         // Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(String)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

         // Populate the table with sample values.
         for (int i = 0; i < 9; i++) 
         {
            dr = dt.NewRow();

            dr[0] = i;
            dr[1] = "Description for item " + i.ToString();
            dr[2] = 1.23 * (i + 1);

            dt.Rows.Add(dr);
         }

         DataView dv = new DataView(dt);
         return dv;

      }


      void Page_Load(Object sender, EventArgs e) 
      {

         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack) 
         {
            ItemsList.DataSource = CreateDataSource();
            ItemsList.DataBind();
         }

      }

      void Item_Created(Object sender, DataListItemEventArgs e)
      {

         if (e.Item.ItemType == ListItemType.Item || 
             e.Item.ItemType == ListItemType.AlternatingItem)
         {

            // Retrieve the Label control in the current DataListItem.
            Label PriceLabel = (Label)e.Item.FindControl("PriceLabel");

            // Retrieve the text of the CurrencyColumn from the DataListItem
            // and convert the value to a Double.
            Double Price = Convert.ToDouble(
                ((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString());

            // Format the value as currency and redisplay it in the DataList.
            PriceLabel.Text = Price.ToString("c");

         }

      }

   </script>

<head runat="server">
    <title>DataList ItemCreated Example</title>
</head>
<body>

   <form id="form1" runat="server">

      <h3>DataList ItemCreated Example</h3>

      <asp:DataList id="ItemsList"
           BorderColor="black"
           CellPadding="5"
           CellSpacing="5"
           RepeatDirection="Vertical"
           RepeatLayout="Table"
           RepeatColumns="3"
           OnItemCreated="Item_Created"
           runat="server">

         <HeaderStyle BackColor="#aaaadd">
         </HeaderStyle>

         <AlternatingItemStyle BackColor="Gainsboro">
         </AlternatingItemStyle>

         <HeaderTemplate>

            List of items

         </HeaderTemplate>

         <ItemTemplate>

            Description: <br />
            <%# DataBinder.Eval(Container.DataItem, "StringValue") %>

            <br />

            Price: 
            <asp:Label id="PriceLabel"
                 runat="server"/>

         </ItemTemplate>

      </asp:DataList>

   </form>

</body>
</html>


<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<!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" >
   <script runat="server">

      ICollection CreateDataSource() 
      {

         // Create sample data for the DataList control.
         DataTable dt = new DataTable();
         DataRow dr;

         // Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(String)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

         // Populate the table with sample values.
         for (int i = 0; i < 9; i++) 
         {
            dr = dt.NewRow();

            dr[0] = i;
            dr[1] = "Description for item " + i.ToString();
            dr[2] = 1.23 * (i + 1);

            dt.Rows.Add(dr);
         }

         DataView dv = new DataView(dt);
         return dv;

      }


      void Page_Load(Object sender, EventArgs e) 
      {

         // Manually register the event-handling method for the 
         // ItemCommand event.
         ItemsList.ItemCreated += 
             new DataListItemEventHandler(this.Item_Created);

         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack) 
         {
            ItemsList.DataSource = CreateDataSource();
            ItemsList.DataBind();
         }

      }

      void Item_Created(Object sender, DataListItemEventArgs e)
      {

         if (e.Item.ItemType == ListItemType.Item || 
             e.Item.ItemType == ListItemType.AlternatingItem)
         {

            // Retrieve the Label control in the current DataListItem.
            Label PriceLabel = (Label)e.Item.FindControl("PriceLabel");

            // Retrieve the text of the CurrencyColumn from the DataListItem
            // and convert the value to a Double.
            Double Price = Convert.ToDouble(
                ((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString());

            // Format the value as currency and redisplay it in the DataList.
            PriceLabel.Text = Price.ToString("c");

         }

      }

   </script>

<head runat="server">
    <title>DataList ItemCreated Example</title>
</head>
<body>

   <form id="form1" runat="server">

      <h3>DataList ItemCreated Example</h3>

      <asp:DataList id="ItemsList"
           BorderColor="black"
           CellPadding="5"
           CellSpacing="5"
           RepeatDirection="Vertical"
           RepeatLayout="Table"
           RepeatColumns="3"
           runat="server">

         <HeaderStyle BackColor="#aaaadd">
         </HeaderStyle>

         <AlternatingItemStyle BackColor="Gainsboro">
         </AlternatingItemStyle>

         <HeaderTemplate>

            List of items

         </HeaderTemplate>

         <ItemTemplate>

            Description: <br />
            <%# DataBinder.Eval(Container.DataItem, "StringValue") %>

            <br />

            Price: 
            <asp:Label id="PriceLabel"
                 runat="server"/>

         </ItemTemplate>

      </asp:DataList>

   </form>

</body>
</html>

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: