Непонятно работает CheckBox...

caplan22
Дата: 15.04.2007 18:33:15
Всем привет.
Столкнулся с такой штукой - на страничке есть обычный CheckBox.
Так вот, при возникновении события CheckedChahged происходит постбек и должен выполниться мой код.if (cbh.Checked)
{
bla-bla;
}
else
{
bla-bla-bla;
}

При установки "крыжика" - все нормально, код отрабатывается. А вот при снятии "крыжика" даже само событие не происходит. Разве такое может быть? В чем подвох? Объясните, если кто сталкивался...
Заранее благодарен
Евгений Веприков
Дата: 15.04.2007 19:32:49
Покажите код.
Все должно быть просто, очень просто, настолько просто - насколько это возможно!
 Мой блог Возможно на твой вопрос уже есть ответ? FAQ
caplan22
Дата: 15.04.2007 19:43:17
Вот код методаprotected void cbHeader_CheckedChanged(object sender, EventArgs e)
{
bool flag = false;
if (cbHeader.Checked)
{
flag = true;
}
else
{
flag = false;
}

CheckBox cbi = sender as CheckBox;
for (int I = 0; I < CMSDataList1.Items.Count; I++)
{
cbi = CMSDataList1.Items[I].FindControl("cbItem") as CheckBox;
cbi.Checked = flag;
}
}Небольшое пояснение - при выборе этого ЧекБокса происходит выбор всех ЧекБоксов, находящихся в ДатаЛисте. И, соответственно, при снятии должны сниматься все...
caplan22
Дата: 15.04.2007 19:50:04
А на страничке :<td align="center" width="20">
<asp:CheckBox ID="cbHeader" runat="server" AutoPostBack="True" OnCheckedChanged="cbHeader_CheckedChanged" EnableViewState="True"/>
</td>

caplan22
Дата: 15.04.2007 20:10:23
Сорри, немного не так. Код метода такой :protected void cbHeader_CheckedChanged(object sender, EventArgs e)
{
bool flag = false;

CheckBox cbh = sender as CheckBox;
if (cbh.Checked)
{
flag = true;
}
else
{
flag = false;
}

CheckBox cbi = new CheckBox();
for (int I = 0; I < CMSDataList1.Items.Count; I++)
{
cbi = CMSDataList1.Items[I].FindControl("cbItem") as CheckBox;
cbi.Checked = flag;
}
}

caplan22
Дата: 15.04.2007 20:21:13
Или еще короче :) protected void cbHeader_CheckedChanged(object sender, EventArgs e)
{
CheckBox cbh = sender as CheckBox;
for (int I = 0; I < CMSDataList1.Items.Count; I++)
{
(CMSDataList1.Items[I].FindControl("cbItem") as CheckBox).Checked = cbh.Checked;
}
}

 Один фиг, работает только на половину - крыжик ставлю - устанавливаются крыжики во всех ЧекБоксах ДатаЛиста. Снимаю - все крыжики остаются. Ставлю брекпоинт на методе - при установке крыжика - метод отрабатывается а при снятии - нет.
caplan22
Дата: 16.04.2007 00:10:14
почему вообще может не сробатывать событие? И есть ли способ отследить, какие события происходит, ведь постбек-то происходит..
Подскажите!!!!