Обработчик события OnCheckedChanged флажка asp: не срабатывает, если флажок не установлен

У меня есть повторитель, в каждом ItemTemplate повторителя есть флажок asp: с установленным обработчиком события OnCheckedChanged. Для флажков свойство AutoPostBack установлено в значение true. Когда какой-либо из флажков установлен, обработчик события срабатывает. Когда любая из них не отмечена, обработчик событий не запускается.

Есть идеи, почему событие не срабатывает, и как я могу его зажечь? Благодарю.

Упрощенный код повторителя:

            
          
    
        

Коллекция привязана к повторителю следующим образом:

protected override void OnPreRenderComplete(EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                m_linkedItems = GetLinkedItems();
                rptLinkedItems.DataSource = GetLinkableItems();
                rptLinkedItems.ItemDataBound += new RepeaterItemEventHandler
                       (rptLinkedItems_ItemDataBound);
                rptLinkedItems.DataBind();
            }

            base.OnPreRenderComplete(e);
        }

Обработчик события OnItemDataBound выглядит следующим образом:

private void rptLinkedItems_ItemDataBound(Object sender, RepeaterItemEventArgs args)
        {
            if (args.Item.ItemType == ListItemType.Item || args.Item.ItemType == ListItemType.AlternatingItem)
            {
                CategoryItem item = args.Item.DataItem as CategoryItem;

                Literal litItemName = args.Item.FindControl("litItemName") as Literal;
                CheckBox chkLinked = args.Item.FindControl("chkLinked") as CheckBox;

                litItemName.Text = item.Text;

                chkLinked.Checked = IsItemLinked(item);
                chkLinked.AutoPostBack = true;
                chkLinked.InputAttributes.Add("Value", item.Id.ToString());
            }
        }

Обработчик события OnCheckedChanged выглядит следующим образом:

protected void chkLinked_CheckedChanged(Object sender, EventArgs args)
{
            CheckBox linkedItem = sender as CheckBox;
            Boolean itemState = linkedItem.Checked;
            Int32 itemId = Int32.Parse(linkedItem.InputAttributes["Value"].ToString());
            DataAccessLayer.UpdateLinkedItem(m_linkingItem, Utilities.GetCategoryItemFromId(itemId), itemState);
}

Постскриптум Если кто-то может также сказать мне, почему уценка не делаетне работает правильно для меня ...

Ответы на вопрос(5)

Ваш ответ на вопрос