0

我有在运行时加载用户控件的 asp.net 页面我想在用户控件上捕获页面的保存/取消事件。

用户控件将在运行时加载,因此,为了进一步开发,我不想在页面级别更改我的代码。

任何帮助。

4

2 回答 2

1

我在观察者模式的帮助下解决了它,但做了一些修改,因为我的挑战是 Page 不知道哪个用户控件将在其占位符的运行时加载。

我创建了变更管理器,其中包含具有预期类型的​​观察者引用(提交、取消、仅查看)

Page 持有 change-manager 的引用,并用 (eventtype(enum),response(this.response object)) 调用 change manager 的 notify,然后 change manager 调用 update 方法在这个方法中调用 Observers,保存在 change 字典中——经理。

迭代字典并根据他们感兴趣的事件类型调用他们的更新。

现在我可以自由地记住任何类型转换的用户控件引用。

于 2013-06-24T04:03:28.627 回答
0

请参阅下面的从页面获取用户控制的示例,您需要使用公共修饰符

///user control code see event is public 

public void btn1_Click(object sender, EventArgs e)
{
   ///do you stuff
}
/// page code
protected void Page_Load(object sender, EventArgs e)
{
  uc1.btn1_Click(sender,e);
}
于 2013-06-17T05:04:21.090 回答