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}";
}
}