Raise event from user control to main page / Event delegation from user control to aspx page in ASP.


Default.aspx

  1. OnOutSourceUCDropDownList1_SelectedIndexChanged

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="UserControlTest._Default" %>
<%@ Register Src="~/WebUserControl1.ascx" TagName="WebUserControl1" TagPrefix="uc" %>


<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        Welcome to ASP.NET!
    </h2>
    <p>
        To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>.
    </p>
    <p>
        You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&clcid=0x409"
            title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
    </p>
    <uc:WebUserControl1 ID="ucTest" runat="server" UserName="abc"
    OnOutSourceUCDropDownList1_SelectedIndexChanged="UserControlDropDownList1_SelectedIndexChanged"/>
</asp:Content>

Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace UserControlTest
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void UserControlDropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ucTest.LableValue = "yes";
        }
    }
}

Web Control Page

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="UserControlTest.WebUserControl1" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>

<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="DropDownList1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Label2" />
            </UpdatedControls>  
        </telerik:AjaxSetting>
        </AjaxSettings>
</telerik:RadAjaxManager>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:DropDownList ID="DropDownList1" runat="server" 
    onselectedindexchanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
    <asp:ListItem>aa</asp:ListItem>
    <asp:ListItem>bb</asp:ListItem>
    <asp:ListItem>cc</asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>


Web Control cs Page

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace UserControlTest
{
    public partial class WebUserControl1 : System.Web.UI.UserControl
    {
        public string UserName { get; set; }

        public string LableValue
        {
            get
            {
                return Label2.Text;
            }
            set
            {
                Label2.Text = value;
            }
        }

        public delegate void OnDropDownList1_SelectedIndexChanged(object sender, EventArgs e);

        protected event OnDropDownList1_SelectedIndexChanged _outSourceUCDropDownList1_SelectedIndexChanged;

        public event OnDropDownList1_SelectedIndexChanged OutSourceUCDropDownList1_SelectedIndexChanged
        {
            add
            {
                if (this._outSourceUCDropDownList1_SelectedIndexChanged == null)
                    this._outSourceUCDropDownList1_SelectedIndexChanged += value;
            }
            remove
            {
                if (this._outSourceUCDropDownList1_SelectedIndexChanged != null)
                    this._outSourceUCDropDownList1_SelectedIndexChanged -= value;
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Label1.Text = UserName;
            }
        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this._outSourceUCDropDownList1_SelectedIndexChanged != null)
                this._outSourceUCDropDownList1_SelectedIndexChanged(sender, e);
        }


    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值