Здравствуйте, я установил несколько флажков внутри цикла foreach и добавил их в элементы управления страницей! Я также назначил им один обработчик событий и передал им свой собственный параметр.
Когда срабатывает событие checkedchanged для флажков, оно вызывает этот обработчик событий для всех флажков, которые я добавил. Это может быть связано с тем, что я назначаю обработчик событий внутри для каждого цикла, поэтому всякий раз, когда событие запускается, он запускается для всех флажков! Я хочу, чтобы он запускался только один раз, то есть только для флажка, чей флажок был изменен.
Пожалуйста, помогите мне в этом. Как я могу решить проблему. Фрагменты кода могут помочь вам понять
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. Я знаю, что я делаю что-то не так, но не могу понять
Пожалуйста помоги