OnCheckedChanged event handler of asp:checkbox does not fire when checkbox is unchecked

前端 未结 6 1617
我寻月下人不归
我寻月下人不归 2020-12-11 00:24

I have a repeater, in each ItemTemplate of the repeater is an asp:checkbox with an OnCheckedChanged event handler set. The checkboxes have the AutoPostBack property set to t

6条回答
  •  孤街浪徒
    2020-12-11 00:37

    This is because the control hierarchy (and the check boxes in particular) don't exist when ASP.NET executes the Control events portion of the ASP.NET page life cycle, as you had created them in the later PreRender stages. Please see ASP.NET Page Life Cycle Overview for more detailed overview of the event sequence.

    I would err on the side of caution for @bleeeah's advice, for you're assigning a value to CheckBox.Checked inside rptLinkedItems_ItemDataBound, which would also cause the event handler to execute:

    
    chkLinked.Checked = IsItemLinked(item);
    

    Instead, move:

    
    if (!Page.IsPostBack)
       {
          m_linkedItems = GetLinkedItems();
          rptLinkedItems.DataSource = GetLinkableItems();
          rptLinkedItems.ItemDataBound += new RepeaterItemEventHandler
              (rptLinkedItems_ItemDataBound);
          rptLinkedItems.DataBind();
       }
    
    

    Into the Page.Load event handler.

提交回复
热议问题