Событие CheckedChanged для динамически генерируемого столбца Checkbox в DataGrid (Asp.Net) - PullRequest
0 голосов
/ 02 апреля 2009

У меня есть сетка данных (Asp.Net) с динамически генерируемым столбцом флажка. Я не могу сгенерировать событие checkedChanged для флажка ..

Вот мой код:

открытый класс ItemTemplate: ITemplate { // устанавливает флажок void ITemplate.InstantiateIn (Контейнер управления) { CheckBox box = новый CheckBox ();
box.CheckedChanged + = new EventHandler (this.OnCheckChanged); box.AutoPostBack = true; box.EnableViewState = true; box.Text = текст; box.ID = id; container.Controls.Add (коробка); }

public event EventHandler CheckedChanged;

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

}

и вот это событие

private void OnCheckChanged (отправитель объекта, EventArgs e) {

}

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 02 апреля 2009

Когда вы добавляете свой пользовательский столбец? Если он загружен, то уже слишком поздно. Загрузите его в init. То есть следующие работы с вашим кодом:

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);
}
0 голосов
/ 02 апреля 2009

Если идентификаторы вашего флажка не устанавливаются одинаково на каждой обратной передаче, то они никогда не могут быть подключены к обработчикам событий, когда придет время обрабатывать события. Откуда исходит ваше поле "id"?

...