Здравствуйте, я установил несколько флажков внутри цикла foreach и добавил их в элементы управления страницы! Я также назначил им один обработчик событий и передал им свой собственный параметр.
Когда запускается событие checkaged, отмеченное флажками, вызывается этот обработчик событий для всех добавленных мной флажков. Это может быть потому, что я назначаю обработчик событий внутри каждого цикла, поэтому всякий раз, когда происходит событие, он срабатывает для всех флажков! Я хочу, чтобы он был запущен только один раз, т.е. только для флажка, чей флажок был изменен.
Пожалуйста, помогите мне в этом Как я могу решить проблему
Фрагменты кода могут помочь вам понять
CheckBox checkboxtemp;
foreach (SPListItem item in list.Items)
{
checkboxtemp = new CheckBox();
checkboxtemp.ID = "CheckBoxId" + item.ID;
checkboxtemp.Text = item.Title;
checkboxtemp.AutoPostBack = true;
checkboxtemp.CheckedChanged += new EventHandler((sender, e) => checkboxtemp_CheckedChanged(sender, e, checkboxtemp.Text));
Controls.Add(checkboxtemp);
}
и обработчик события, который запускается для каждого флажка, имеет вид
protected void checkboxtemp_CheckedChanged(object sender, EventArgs e, string fieldName)
{
Label1.Text = fieldName;
}
Независимо от того, какой флажок был установлен. Я всегда получаю последнее текстовое значение флажка в параметре fieldName в обработчике события checkboxtemp_CheckChanged. т.е. когда когда-либо изменяется любое состояние флажка, обработчик событий в цикле foreach вызывается для каждого элемента.
Я знаю, что я делаю что-то не так, но не могу понять это
Пожалуйста, помогите