Datalist ItemDataBound en ASP.NET

Pour personnaliser les éléments au moment de l’exécution à l’aide de l’événement ItemDataBound
1. Créez un gestionnaire d’événements pour l’événement ItemDataBound du contrôle DataList. Pour plus d’informations, consultez Création de gestionnaires d’événements dans les pages Web Forms.
2. Dans le gestionnaire d’événements, utilisez la propriété e.Item.DataItem pour tester les données qui seront liées au contrôle et effectuez une comparaison sur la base de ces données.
L’exemple suivant montre comment effectuer un test conditionnel fondé sur les données. L’exemple extrait le troisième champ Quantity de DataItem. Si la quantité est inférieure à 10, l’élément du contrôle DataList est affiché en rouge.
// C#
private void DataList1_ItemDataBound(object sender,
System.Web.UI.WebControls.DataListItemEventArgs e)
{
DataRowView drv = (DataRowView)(e.Item.DataItem);
int quantity = int.Parse(drv.Row["Quantity"].ToString());
if (quantity < 10) { e.Item.BackColor = Color.Red; }

}
Lien vers aide microsoft

Datalist Généralité et Evénements en ASP.NET

Événements
Le contrôle DataList prend en charge plusieurs événements. L’un d’eux, l’événement ItemCreated, vous offre la possibilité de personnaliser le processus de création d’éléments au moment de l’exécution. L’événement ItemDataBound vous offre aussi le moyen de personnaliser le contrôle DataList mais après que les données sont accessibles pour consultation. Par exemple, si vous utilisez le contrôle DataList pour afficher une liste de tâches, vous pouvez afficher les éléments en retard en rouge, les tâches terminées en noir et les autres tâches en vert. Vous pouvez utiliser l’un ou l’autre de ces événements pour substituer la mise en forme définie dans le modèle.
Les autres événements sont déclenchés en réponse à des clics de bouton dans les éléments de la liste. Ils sont conçus afin de vous aider à répondre aux fonctionnalités les plus utilisées du contrôle DataList. Quatre événements de ce type sont pris en charge :
* EditCommand
* DeleteCommand
* UpdateCommand
* CancelCommand
Lorsqu’un utilisateur clique sur un bouton dans un élément, l’événement remonte jusqu’au conteneur du bouton, en l’occurrence le contrôle DataList. L’événement précis déclenché par le bouton dépend de la propriété CommandName du bouton sur lequel un utilisateur a cliqué. Par exemple, si la propriété CommandName d’un bouton est edit, le bouton déclenche un événement EditCommand. Si la propriété CommandName est delete, le bouton déclenche un événement DeleteCommand, etc.
Le contrôle DataList prend également en charge l’événement ItemCommand, déclenché lorsqu’un utilisateur clique sur un bouton qui ne possède pas de commande prédéfinie telle que edit ou delete. Vous pouvez utiliser cet événement pour disposer de fonctionnalités personnalisées, en configurant la valeur requise pour la propriété CommandName du bouton puis en le testant dans le gestionnaire d’événements ItemCommand. (Vous pouvez, par exemple, recourir à cette approche lors de la sélection d’un élément, comme décrit dans Configuration du contrôle serveur Web DataList afin de permettre aux utilisateurs d’y sélectionner des éléments.)
Pour obtenir une liste complète des événements pris en charge par le contrôle DataList, consultez DataList, événements. Pour plus d’informations sur les événements associés aux Web Forms, consultez Modèle d’événements du contrôle serveur ASP.NET.
Édition et sélection d’éléments
Vous pouvez offrir aux utilisateurs la possibilité de modifier des éléments individuels du contrôle. La stratégie classique consiste à créer un modèle EditItemTemplate qui fournit la disposition et les contrôles appropriés pour le mode édition. Vous devez également fournir aux utilisateurs un moyen d’indiquer qu’ils souhaitent modifier l’élément. La méthode la plus courante consiste à inclure un bouton dans le modèle ItemTemplate (et AlternatingItemTemplate, si vous l’utilisez) puis à attribuer à la propriété CommandName du bouton, la valeur edit. Dès lors, lors d’un clic sur le bouton, le contrôle DataList déclenche automatiquement l’événement EditCommand. Dans le gestionnaire d’événements de cet événement, vous activez le mode édition pour l’élément, ce qui affiche le modèle EditItemTemplate.
EditItemTemplate inclut généralement des boutons qui permettent à l’utilisateur d’enregistrer les modifications ou de les rejeter (par exemple des boutons Mettre à jour et Annuler). Ces boutons fonctionnent de la même façon que le bouton Modifier : ils envoient un message de commande prédéfini (update ou cancel) au contrôle DataList, lequel déclenche un événement UpdateCommand ou CancelCommand auquel vous pouvez répondre de la façon requise. Dans le cas d’une application de suivi des clients, les modèles peuvent ressembler à ceux illustrés ci-dessous.
Le processus de sélection d’un élément est similaire et recourt à l’événement SelectedIndexChanged. Vous ajoutez un bouton au modèle ItemTemplate et vous attribuez la valeur select à sa propriété CommandName. Vous écrivez ensuite un gestionnaire d’événements pour l’événement SelectedIndexChanged. L’événement SelectedIndexChanged est déclenché lorsque l’utilisateur clique sur le bouton Sélectionner. Pour plus d’informations, consultez Configuration du contrôle serveur Web DataList afin de permettre aux utilisateurs d’y sélectionner des éléments.

Source Microsoft

Pour en savoir plus :
Aide Microsoft

Datalist et CheckList en ASP.NET

< asp:datalist id="MyDataList" runat="server" repeatcolumns="2">
< itemtemplate>

< table style="FONT: 10pt verdana" cellpadding="10">
< tbody><tr>
< td width="1" bgcolor="#bd8672">
< td valign="top">
< img src="<%#" align="top" />’ >
< /td>
< td valign="top">
< b>Titre: </b><%# DataBinder.Eval(Container.DataItem, "titre") %>

< b>Categorie : </b><%# DataBinder.Eval(Container.DataItem, "type") %>

< b>Editeur : </b><%# DataBinder.Eval(Container.DataItem, "editeur_id") %>

< b>Prix : </b><%# DataBinder.Eval(Container.DataItem, "prix", "{0} € ") %>
<p>
< asp:checkbox id="Save" runat="server"></asp:checkbox><b>Mémoriser votre préféré</b>
< /p></td>
< /tr>
< /tbody></table>

< /itemtemplate>
< /asp:datalist>

void Submit_Click(Object Src, EventArgs E )
{

for(i=0;i<e.count; i++)
{

String isChecked = ((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked.ToString();
Message.InnerHtml += "Livre (" + i + "): " + est mémorisé + "";

}
}
}

Liste des exceptions en C#

System.OutOfMemoryException
Thrown when an attempt to allocate memory (via new) fails.

System.StackOverflowException
Thrown when the execution stack is exhausted by having too many pending method calls; typically indicative of very deep or unbounded recursion.

System.NullReferenceException
Thrown when a null reference is used in a way that causes the referenced object to be required.

System.TypeInitializationException
Thrown when a static constructor throws an exception, and no catch clauses exists to catch in.

System.InvalidCastException
Thrown when an explicit conversion from a base type or interface to a derived types fails at run time.

System.ArrayTypeMismatchException
Thrown when a store into an array fails because the actual type of the stored element is incompatible with the actual type of the array.

System.IndexOutOfRangeException
Thrown when an attempt to index an array via an index that is less than zero or outside the bounds of the array.

System.MulticastNotSupportedException
Thrown when an attempt to combine two non-null delegates fails, because the delegate type does not have a void return type.

System.ArithmeticException
A base class for exceptions that occur during arithmetic operations, such as DivideByZeroException and OverflowException.

System.DivideByZeroException
Thrown when an attempt to divide an integral value by zero occurs.

System.OverflowException
Thrown when an arithmetic operation in a checked context overflows.

System.OutOfMemoryException
Thrown when an attempt to allocate memory (via new) fails.

System.StackOverflowException
Thrown when the execution stack is exhausted by having too many pending method calls; typically indicative of very deep or unbounded recursion.

System.NullReferenceException
Thrown when a null reference is used in a way that causes the referenced object to be required.

System.TypeInitializationException
Thrown when a static constructor throws an exception, and no catch clauses exists to catch in.

System.InvalidCastException
Thrown when an explicit conversion from a base type or interface to a derived types fails at run time.

System.ArrayTypeMismatchException
Thrown when a store into an array fails because the actual type of the stored element is incompatible with the actual type of the array.

System.IndexOutOfRangeException
Thrown when an attempt to index an array via an index that is less than zero or outside the bounds of the array.

System.MulticastNotSupportedException
Thrown when an attempt to combine two non-null delegates fails, because the delegate type does not have a void return type.

System.ArithmeticException
A base class for exceptions that occur during arithmetic operations, such as DivideByZeroException and OverflowException.

System.DivideByZeroException
Thrown when an attempt to divide an integral value by zero occurs.

System.OverflowException
Thrown when an arithmetic operation in a checked context overflows.

Globalisation et Gestion des langues en ASP.NET

Pour la Globalisation et la Localisation voici les paramètres de langue du navigateur pour déterminer le jeu de caractères à utiliser pour coder les informations :
Groupe de langues : Jeu de caractères
Arabe : Windows 1256
Balte : iso-8859-4
Chinois : (simplifié) Gb2131
Chinois : (traditionnel) Big5
Cyrillique : koi8-r
Europe de l’est : iso-8859-2
Grec : iso-8859-7
Hébreu : windows-1255
Japonais : iso-2022-jp
Coréen : ks_c_5601-1987
Thaïlandais : windows-874
Turc : iso-8859-9
Vietnamien : windows-1258
Europe de l’ouest : iso-8859-1

Datalist et Command en ASP.NET et C#

Voici un morceau de code pour vous aider à utiliser l’événement Command d’un Datalist

private void MyDataList_ItemCommand(Object sender, DataListCommandEventArgs E)

{
String title = MyDataList.DataKeys[E.Item.ItemIndex].ToString();
String command = E.CommandName;
switch(command)

{
case "Discuss" :
ShowDiscussions(title);
break;
case "Ratings" :
ShowRatings(title);
break;

}
}
void ShowRatings(String title)

{
Message.InnerHtml = " Ratings for \"" + title + "\"";
Message.InnerHtml += "Print Ratings here…";
}
void ShowDiscussions(String title)

{
Message.InnerHtml = " Discussions for \"" + title + "\"";
Message.InnerHtml += "Print Discussions here…";
}

Sessions sans cookies en ASP.NET et C#

Par défaut ASP.NET place un cookies http de session
or une seconde solution existe pour ceux qui refuseraient les cookies et de placer l’id de session dans l’url
pour cela mettre dans web.config cookieless="true"