Nous avons deux modèles de colonne de données ASP.Net qui sont dynamiquement ajoutés à la vue de données en fonction des colonnes sélectionnées par les utilisateurs.Meilleure pratique pour les classes Web.UI.ITemplate ajoutées dynamiquement
Ces cellules ont besoin pour gérer templated DataBindings personnalisés:
public class CustomColumnTemplate:
ITemplate
{
public void InstantiateIn(Control container)
{
//create a new label
Label contentLabel = new Label();
//add a custom data binding
contentLabel.DataBinding +=
(sender, e) =>
{
//do custom stuff at databind time
contentLabel.Text = //bound content
};
//add the label to the cell
container.Controls.Add(contentLabel);
}
}
...
myGridView.Columns.Add(new TemplateField
{
ItemTemplate = new CustomColumnTemplate(),
HeaderText = "Custom column"
});
Tout d'abord cela semble plutôt désordonné, mais il y a aussi une question de ressources. Le Label
est généré et ne peut pas être mis au rebut dans le InstantiateIn
car il ne serait alors plus là pour le databind.
Y a-t-il un meilleur motif pour ces contrôles?
Existe-t-il un moyen de s'assurer que l'étiquette est éliminée après le databind et rendu?