User Control(Image Button)
User Control(Left Hyperlink Menu) User Control(Main Content) User Control(Advertisments)
User Control(Additional Links)
如果你想要在点击左面的Link时,让container动态的调用一个新的user control到Main Content的位置,这就要求我们给这两个web组件定位:
1.Parent Web Form:应该知晓页面中他所有load的user controls传递给他的的布局和导航消息
2.User Control:向Parent Web Form传递消息
拿上面的例子说,Parent Web Form怎样才知道你什么时候点击了Left Hyperlink Menu中的一个Link,或者Parent Web Form怎样才知道你点击了哪一个Link?很明显我们应该提供一个通信机制,而.NET Framework已经提供了这样一套机制--Event。(当然上面的例子可以用Response.Redirect和Request.Params来解决,但这不是一个最优的解决方案,因为这种机制是紧密耦合的,而一个好的组件是应该有高度独立性的,我以前也说过事件是松散耦合的机制)
现在我们来先看一段代码
using System;
using System.Web.UI.WebControls;
namespace Michael.Communication.UserControls.Delegates
{
using EvengArgObjects;
// 声明delegate(注意delegate其实是个对象),在C#中一般是(object sender, EventArgs e),sender是引发事件的对象的例示
//比如说在一个user control中有一个button引发了一个事件,那button就是sender,而不是user control
//delegate既可以在class之外声明也可以在class之内声明,一般在class之外声明
public delegate void HeaderEventHandler(object sender, MichaelImageEventArgs e);
}
namespace Michael.Communication.UserControls.Delegates.EventArgObjects
{
// 继承System.EventArgs,当单击图形按钮时提供信息
public class MichaelImageEventArgs : System.EventArgs
{
private string imageTextClicked = null;
public string imageText
{
get {return imageTextClicked;}
set {ima
| 对此文章发表了评论 |

