Create a UserControl named Uc1.ascx (i.e. I have created insided Folder named Controls)
Step 1: Declare a Delegate and Events for it. In my case,i have created for button click and dropdownlist
Step 2: In .aspx page reference it like this :
<%@ Register Src="~/Controls/Uc1.ascx" TagName="Users" TagPrefix="Test" %>
Uc1.ascx------------<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Uc1.ascx.cs" Inherits="Controls_Uc1" %>This is User control1<asp:Button ID="btnButton1" runat="server" Text="Click" OnClick="btnButton1_Click" /><asp:DropDownList ID="drp1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="drp1_OnSelectedIndexChanged"><asp:ListItem>One</asp:ListItem><asp:ListItem>Two</asp:ListItem><asp:ListItem>Three</asp:ListItem><asp:ListItem>Four</asp:ListItem></asp:DropDownList>Uc1.ascx.cs------------using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class Controls_Uc1 : System.Web.UI.UserControl{#region DECLRATIONSpublic delegate void MyCustomHandler(object sender, EventArgs e); //This is for button clickpublic event MyCustomHandler SomethingClicked;public delegate void MyCustomSelectedHandler(object sender, EventArgs e); //This is for Dropdown selectedpublic event MyCustomSelectedHandler SomethingSelected;#endregionprotected void Page_Load(object sender, EventArgs e){}protected void btnButton1_Click(object sender, EventArgs e){//tell our parent page which is listening for the event that something was clicked//this null check and method invoke is the equivalent of raise event in VBif (SomethingClicked != null){SomethingClicked(sender, e);}//do some other work specific to this button in the user control}protected void drp1_OnSelectedIndexChanged(object sender, EventArgs e){if (SomethingSelected != null){SomethingSelected(sender, e);}}}
Default4.aspx
---------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %><%@ Register Src="~/Controls/Uc1.ascx" TagName="Users" TagPrefix="Test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><title></title></head><body><form id="form1" runat="server"><div><asp:Button ID="btn1" runat="server" Text="Load UserControl1" /><br /><Test:Users ID="Users1" runat="server"></Test:Users></div></form></body></html>
Default4.aspx.cs
----------------------------
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class Default4 : System.Web.UI.Page{protected override void OnInit(EventArgs e){base.OnInit(e);Users1.SomethingClicked += new Controls_Uc1.MyCustomHandler(Users1_ButtonClicked); //Button ClickUsers1.SomethingSelected += new Controls_Uc1.MyCustomSelectedHandler(Users1_DropDownSelected); //DropDownList}protected void Users1_ButtonClicked(object senders, EventArgs e){ScriptManager.RegisterClientScriptBlock(this, GetType(), "clientkey", "<script>alert('Button1 Clicked');</script>", false);}protected void Users1_DropDownSelected(object senders, EventArgs e){ScriptManager.RegisterClientScriptBlock(this, GetType(), "clientkey", "<script>alert('Make Parent Pages Modal Popup visible when UserControls dropdownlist posted back');</script>", false);}protected void Page_Load(object sender, EventArgs e){}}
0 comments:
Post a Comment