我有一个用户控件在同一页面上使用两次,每个都有能力更新(下拉列表获取一个新项目),我'我不知道什么可能是处理这个问题的最好方法。两个UserControls,一个页面,需要通知对方的更新
一个问题 - 这是一个较旧的系统(~4 +年,数据集,.net2),它非常脆弱。我确实设法让它在3.5上运行,没有任何问题,但是当我更改/添加/修改控件的时候,我已经在javascript验证(每页约300行)家长。
我有一个用户控件在同一页面上使用两次,每个都有能力更新(下拉列表获取一个新项目),我'我不知道什么可能是处理这个问题的最好方法。两个UserControls,一个页面,需要通知对方的更新
一个问题 - 这是一个较旧的系统(~4 +年,数据集,.net2),它非常脆弱。我确实设法让它在3.5上运行,没有任何问题,但是当我更改/添加/修改控件的时候,我已经在javascript验证(每页约300行)家长。
甚至没有最需要的话,我忘了提及这是VB,所以我把这个用户控件...
Public Event UpdateListings As EventHandler
Public Function SomethingToDo
'doing some cool stuff ...not really
RaiseEvent UpdateListings(Me, EventArgs.Empty)
Return result
End Function
然后在后面的代码父页面上
Protected Sub UpdateStuff(ByVal sender As Object, ByVal e As EventArgs) Handles userControl1.UpdateListings, userControl2.UpdateListings
userControl1.BindStuff()
userControl2.BindStuff()
End Sub
将活动添加到您的用户控件。
public event EventHandler MyEvent;
protected void OnMyEvent(EventArgs e)
{
if(MyEvent != null)
{
MyEvent(this, e);
}
}
protected void AddOptionAdded(object sender, EventArgs e)
{
OnMyEvent(EventArgs.Empty);
}
然后在您的页面中,您可以订阅两个控件事件。
protected void Page_Load(object sender, EventArgs e)
{
WebUserControl1.MyEvent += OnMyEventHander;
WebUserControl2.MyEvent += OnMyEventHander;
}
protected void OnMyEventHandler(object sender, EventArgs e)
{
// Notify the other controls that something changed.
}
然后在您的页面的事件处理程序中,您可以执行任何您需要执行的操作来更新其他控件。调用方法等。
您还可以创建自己的委托和EventArgs类来传递可能需要的其他自定义数据。
好吧,没有工作,看到我的“答案”我自己的问题(我试图发布的东西评论...格式化失败) – jeriley 2010-05-17 16:41:14