2009-04-02 7 views
0

J'ai un DataGrid (Asp.Net) avec case généré dynamiquement column..I ne suis pas en mesure de générer l'événement CheckedChanged pour la case ..événement CheckedChanged pour la colonne générée Dynamiquement dans DataGrid cases à cocher (Asp.Net)

Voici mon code:

public class ItemTemplate: ITemplate {// Instancie la case vide ITemplate.InstantiateIn (conteneur de contrôle) { checkBox box = new checkBox();
box.CheckedChanged + = new EventHandler (this.OnCheckChanged); box.AutoPostBack = true; box.EnableViewState = true; box.Text = text; box.ID = id; container.Controls.Add (boîte); }

public event EventHandler CheckedChanged; 

private void OnCheckChanged(object sender, EventArgs e) 
{ 
    if (CheckedChanged != null) 
    { 
     CheckedChanged(sender, e); 
    } 
} 

}

et voici l'événement

private void OnCheckChanged (expéditeur d'objet, EventArgs e) {

}

Merci à l'avance

Répondre

0

Si y nos identifiants checkbox ne sont pas définis de la même manière à chaque publication, ils ne peuvent donc jamais être connectés aux gestionnaires d'événements lorsque vient le temps de traiter les événements. D'où vient votre champ "id"?

+0

je suis par défaut assiging l'id .. – Vinod

1

Quand ajoutez-vous votre colonne personnalisée? Si c'est en charge, il est trop tard. Chargez-le sur init. C'est à dire. travaux suivants avec votre code:

protected void Page_Init(object sender, EventArgs e) 
{ 
    ItemTemplate myTemplate = new ItemTemplate(); 
    myTemplate.CheckedChanged += new EventHandler(myTemplate_CheckedChanged); 

    TemplateField col = new TemplateField(); 
    col.ItemTemplate = myTemplate; 
    col.ItemStyle.Wrap = false; 

    grid.Columns.Add(col); 
} 
Questions connexes