C# 将值从一个用户控件传递到另一个用户控件
我有三个用户控件uc1.ascx、uc2.ascx、UC_Combined.ascx UC1有一个标签控件 UC2有一个下拉列表控件 UC_Combined是通过组合UC1和UC2创建的 现在我将UC_Combined.ascx放在我的aspx页面webForm1.aspx还有一个标签servercontrol 现在,当我运行我的webForm1.aspx页面时,我可以看到下拉列表和标签 现在,当我从下拉列表中选择一个项目时,我希望选择的值显示在标签上C# 将值从一个用户控件传递到另一个用户控件,c#,asp.net,user-controls,C#,Asp.net,User Controls,我有三个用户控件uc1.ascx、uc2.ascx、UC_Combined.ascx UC1有一个标签控件 UC2有一个下拉列表控件 UC_Combined是通过组合UC1和UC2创建的 现在我将UC_Combined.ascx放在我的aspx页面webForm1.aspx还有一个标签servercontrol 现在,当我运行我的webForm1.aspx页面时,我可以看到下拉列表和标签 现在,当我从下拉列表中选择一个项目时,我希望选择的值显示在标签上 有人能建议我怎么做吗。在父控件和子控件之间
有人能建议我怎么做吗。在父控件和子控件之间创建依赖关系不是最好的。你通常应该避免的事情。但是,如果你不得不这样做,或者以某种方式让你的生活变得更轻松,那么有一些技术可以实现这一点,同时保持控制的某种解耦。我建议您执行以下操作:
你认为你明白了吗?简单。在uc上执行包含下拉列表的事件,如:
public event EventHandler<DDSelectionChangedEventArgs> DDSelectionChanged;
public virtual void OnDDSelectionChanged(DDSelectionChangedEventArgs e)
{
if (DDSelectionChanged != null)
{
DDSelectionChanged(this, e);
}
}
公共事件事件处理程序DDSELECTION已更改;
公共虚拟无效OnDDSelectionChanged(DDSelectionChangedEventArgs e)
{
如果(DDSelectionChanged!=null)
{
DDS选择已更改(本,e);
}
}
dd的selection changed处理程序必须调用OnDDSelectionChanged
在页面(aspx)中的该事件上注册处理程序。然后,这个处理程序应该使用文本框在第二个uc上调用类似ChangeText(text)的内容。文本框已更新
因此,uc之间的通信由事件驱动,页面有责任连接事件。加州大学是完全独立的。出于好奇,你到底想在这里实现什么?用户控件旨在跨多个页面/控件重用逻辑。用户控件之间不应该存在依赖关系(可以有父/子控件,但不能有子/子控件)为什么不将下拉控件/标签放在UC_组合控件?代码中。顺便说一句,您可以使用“Parent”访问父控件,然后访问您试图访问的子控件。Nice+1.充分利用不利局面=)