Breakpoint not getting hit inside user control in C#

Partha Mandayam 91 Reputation points
2023-08-27T21:52:46.9433333+00:00

I am debugging a user control. I have a breakpoint inside a checkbox_checkedchanged event but it is not being hit. If I click the checkbox, the control is not going inside the checkedchanged event and hitting the breakpoint. However if I put a breakpoint in Page_Load that is being hit.

Why?

Developer technologies | ASP.NET | Other
{count} votes

1 answer

Sort by: Most helpful
  1. AgaveJoe 30,126 Reputation points
    2023-08-28T14:55:56.2933333+00:00

    Below is an example designing a user control. The parent page can set the label and read the checkbox state.

    UserControl

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebFormsDemo.UserControlDemo.WebUserControl1" %>
    <div>
        <asp:CheckBox ID="chkSelectOnMag" runat="server" AutoPostBack="true" OnCheckedChanged="chkSelectOnMag_CheckedChanged"/>
        <asp:Label ID="SelectOnMagLabel" runat="server" Text=""></asp:Label>
    </div>
    
        public partial class WebUserControl1 : System.Web.UI.UserControl
        {
            public string CheckboxLabel
            {
                get { return chkSelectOnMag.Text; }
                set { chkSelectOnMag.Text = value; }
            }
            public bool IsChecked
            {
                get { return chkSelectOnMag.Checked; }
            }
            public event EventHandler SelectOnMagCheckChanged;
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void chkSelectOnMag_CheckedChanged(object sender, EventArgs e)
            {
                OnCheckedChanged(e);
            }
    
            protected void OnCheckedChanged(EventArgs e)
            {
                if (SelectOnMagCheckChanged != null)
                {
                    SelectOnMagCheckChanged(this, e);
                }
            }
        }
    

    Default.aspx

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebFormsDemo.UserControlDemo.Default" %>
    <%@ Register Src="~/UserControlDemo/WebUserControl1.ascx" TagPrefix="uc1" TagName="WebUserControl1" %>
    
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <uc1:webusercontrol1 runat="server" id="MyWebUserControl1" />
            </div>
        </form>
    </body>
    </html>
    
        public partial class Default : System.Web.UI.Page
        {   
            protected void Page_Load(object sender, EventArgs e)
            {
                MyWebUserControl1.SelectOnMagCheckChanged += MyWebUserControl1_SelectOnMagCheckChanged;
            }
    
            private void MyWebUserControl1_SelectOnMagCheckChanged(object sender, EventArgs e)
            {
                var usercontrol = (WebUserControl1)sender;
                MyWebUserControl1.CheckboxLabel = $"Is checked: {usercontrol.IsChecked}";
            }
    
    
        }
    

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.