Handle events of usercontrol in parent page in asp.net

Some time we need to make a global functionality for our project then we think about usercontrol and call it to the webpage but what about when all common functionality remains same but some controls event functionality varies according to the page, means we need button click or check box check change or dropdown selected index change event on the parent page.

So Here is an idea for tracking usercontrol control event in the parent page, find control of usercontrol in parent page (using FindControl pass control id), assign method to particular event of that control do the work inside that method.

below is an example,

Passing event from user control to parent page , Event Bubbling From Web User Controls in ASP.NET (C#)

Parent Page aspx.cs part:


public partial class getproductdetails : System.Web.UI.Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
   Button btnYes = (Button)ucPrompt.FindControl("btnYes");
   btnYes.Click += new EventHandler(ucPrompt_btnYes_Click);
 }

 void ucPrompt_btnYes_Click(object sender, EventArgs e)
 {
   //Do Work
 }
}

Register user control in aspx page.


<%@ Register  Src="~/uc_prompt.ascx" TagName="prompt" TagPrefix="uc" %>
<html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server"> 
</head>
<body">
    <form id="form1" runat="server">
      <uc:prompt runat="server" ID="ucPrompt" />
    </form>
</body>
</html>


Uc_prompt usercontrol.ascx part.


<%@ Control Language="C#" AutoEventWireup="true" CodeFile="uc_prompt.ascx.cs" Inherits="uc_prompt" %>
<div style="text-align: center">
    <div>
       <%--User Control Data--%>
    </div>
    <br />
    <br />
    <asp:Button ID="btnYes" runat="server" Text="YES" onclick="btnYes_Click" />
    <asp:Button ID="btnNo" runat="server" Text="NO" onclick="btnNo_Click" />
</div>

Popular Posts