1
我有一個模板化的控件,並且在其中觸發事件時遇到問題。模板化控件中的按鈕:事件沒有觸發
我的實際控制人有更多的模板和更復雜一些,但其實質是如此簡單:
<MyControl>
<SomeTemplate>
<%# Container.Blabla %>
<asp:Button runat="server" id="someButton" OnClick="ClickAction" />
</SomeTemplate>
</MyControl>
一切似乎呈現罰款,但擊中內的按鈕,將不發射事件處理程序(它駐留在我的代碼隱藏中)。我測試了一個在我的控制之外(或在中繼器內)的按鈕,它工作得很好。
我想這可以歸結爲一切添加或數據綁定的順序,但我真的不明白是什麼。這是我的控制的本質:
public class SomeControl : Control, INamingContainer
{
[PersistenceMode(PersistenceMode.InnerProperty)]
[TemplateContainer(typeof(SomeTemplateContainer))]
public ITemplate SomeTemplate { get; set; }
public override ControlCollection Controls
{
get
{
EnsureChildControls();
return base.Controls;
}
}
protected override void CreateChildControls()
{
if (ChildControlsCreated)
return;
base.Controls.Clear();
// Creating template containers, instantiating in controls and adding controls
DataBind();
ChildControlsCreated = true;
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// A bunch of stuff I know work since it operates independently of my button
}
// Some private utility methods
}
我在想什麼或做錯了什麼?
在控制類ClickAction界定?此外,這可能有助於http://stackoverflow.com/questions/1005499/problems-with-aspbutton-onclick-event – Soenhay