C# 从主机页调用用户控件中的事件处理程序

C# 从主机页调用用户控件中的事件处理程序,c#,asp.net,user-controls,drop-down-menu,C#,Asp.net,User Controls,Drop Down Menu,我在用户控件中有一个dropdownlist,当dropdownlist的选定索引更改时,我希望根据承载该用户控件的主机页执行不同的功能,例如,当主机页为locations时,我希望事件加载下拉列表中选定项的位置,当托管页面是services时,我希望为下拉列表中的所选项目加载服务。实现此方案的最佳方法是什么。以下内容对您有帮助吗 internal void BindDDL(DropDownList ddl, Object source, string dataValueField, strin

我在用户控件中有一个dropdownlist,当dropdownlist的选定索引更改时,我希望根据承载该用户控件的主机页执行不同的功能,例如,当主机页为locations时,我希望事件加载下拉列表中选定项的位置,当托管页面是services时,我希望为下拉列表中的所选项目加载服务。实现此方案的最佳方法是什么。

以下内容对您有帮助吗

internal void BindDDL(DropDownList ddl, Object source, string dataValueField, string dataTextField)
    {
        ddl.DataValueField = dataValueField;
        ddl.DataTextField = dataTextField;
        ddl.DataSource = source;
        ddl.DataBind();
    }

每当您想要向父控件通知某些内容时,一个好的做法是从父控件注册并执行所需操作的子控件引发事件


另一方面,将父控件的引用传递给子控件,这样子控件就可以调用父控件上的方法,这是一种不好的做法。

对不起,我想我没有把我的观点讲清楚。实际上,这个用户控件将加载公司,主机页将包含一个gridview。当从下拉列表中选择公司时,主页中的网格将加载所选公司的位置/服务/etc。