我有三个用户控件uc1.ascx,uc2.ascx,UC_Combined.ascx
UC1有一个标签控件
UC2有一个下拉列表控件
UC_Combined是通过组合UC1和UC2
创建的现在我将UC_Combined.ascx放在我的aspx页面上webForm1.aspx还有一个Label servercontrol
现在,当我运行webForm1.aspx页面时,我可以看到DropDown列表和标签
现在,当我从下拉列表中选择一个项目时,我希望选择的值显示给标签
有人可以建议我怎么做。
答案 0 :(得分:1)
最好在父控件和子控件之间创建依赖关系。你通常应该避免的事情。但是,如果你必须这样做或以某种方式使你的生活更轻松,那么有一些技术可以实现这一点,同时保持控制有点脱钩。我建议你做以下事情:
认为你明白了吗?
答案 1 :(得分:1)
易。在包含下拉列表的uc上实现一个事件,如:
public event EventHandler<DDSelectionChangedEventArgs> DDSelectionChanged;
public virtual void OnDDSelectionChanged(DDSelectionChangedEventArgs e)
{
if (DDSelectionChanged != null)
{
DDSelectionChanged(this, e);
}
}
选择更改了dd的处理程序,然后必须调用OnDDSelectionChanged。
在页面(aspx)中为该事件注册处理程序。然后,此处理程序应该使用文本框在第二个uc上调用类似ChangeText(text)的内容。文本框已更新。
因此,uc之间的通信是由事件驱动的,并且页面具有将事件连接起来的可靠性。 uc是完全独立的。