也許我失去了一些東西!您可以使用事件冒泡代替。但FormView控件沒有處理子控件事件的事件。所以,我們有一些變化。
[System.Web.UI.ToolboxData("<{0}:FormView runat=\"server\" />")]
public class FormView : System.Web.UI.WebControls.FormView
{
private static readonly object _itemClickEvent = new object();
[System.ComponentModel.Category("Action")]
public event EventHandler<System.Web.UI.WebControls.FormViewCommandEventArgs> ItemClick
{
add { base.Events.AddHandler(_itemClickEvent, value); }
remove { base.Events.RemoveHandler(_itemClickEvent, value); }
}
protected virtual void OnItemClick(System.Web.UI.WebControls.FormViewCommandEventArgs e)
{
EventHandler<System.Web.UI.WebControls.FormViewCommandEventArgs> handler = base.Events[_itemClickEvent] as EventHandler<System.Web.UI.WebControls.FormViewCommandEventArgs>;
if (handler != null) handler(this, e);
}
protected override bool OnBubbleEvent(object source, EventArgs e)
{
this.OnItemClick((System.Web.UI.WebControls.FormViewCommandEventArgs)e);
return base.OnBubbleEvent(source, e);
}
}
上面的代碼片段展示了,我們怎麼能一個ItemClick
事件添加到FormView控件來處理子控件的事件。現在,您應該映射或拖動新的FormView控件。
我其實很想知道這一點,因爲我遇到了一些動態加載的用戶控件和綁定到他們的事件的麻煩。 – rossipedia 2009-12-18 17:36:21
添加事件處理標記 – denny 2009-12-18 19:00:03