2009-04-02 23 views
0

Ich habe ein Datagrid (Asp.Net) mit dynamisch generierten Checkbox column..I ist nicht in der Lage, das CheckedChanged Ereignis für das Kontrollkästchen zu erzeugen ..CheckedChanged Ereignis für Dynamisch generierte Checkbox Spalte in Datagrid (Asp.Net)

Hier ist mein Code:

public class ItemTemplate: ITemplate { // instanziiert das Kontrollkästchen Leere ITemplate.InstantiateIn (Control-Container) { CheckBox box = new CheckBox();
box.CheckedChanged + = neuer EventHandler (this.OnCheckChanged); box.AutoPostBack = true; box.EnableViewState = true; box.Text = Text; box.ID = ID; container.Controls.Add (Feld); }

public event EventHandler CheckedChanged; 

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

}

und hier ist das Ereignis

private void OnCheckChanged (object sender, EventArgs e) {

}

Vielen Dank im Voraus

Antwort

0

Wenn y Unsere Checkbox-IDs werden nicht bei jedem Postback gleich eingestellt. Sie können dann nie mit den Event-Handlern verbunden werden, wenn es an der Zeit ist, die Ereignisse zu verarbeiten. Woher kommt dein Feld "id"?

+0

ich bin standardmäßig die ID .. – Vinod

1

Wann fügen Sie Ihre benutzerdefinierte Spalte hinzu? Wenn es unter Last steht, ist es zu spät. Laden Sie es auf init. I.e. Folgendes funktioniert mit Ihrem 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); 
} 
Verwandte Themen