2015-12-03 29 views
0

我生成这样的“的HtmlAnchor”控制:ASP.NET生成OnServerClick与动态控制

<li> 
    <a id=\"AnchorButton\" onserverclick=\"HtmlAnchor_Click\" runat=\"server\">&lt;&lt;</a> 
</li> 

而且我链接甚至在Page_Load控制:

System.Web.UI.HtmlControls.HtmlAnchor AnchorButton = new System.Web.UI.HtmlControls.HtmlAnchor(); 
AnchorButton.Visible = false; 
AnchorButton.ServerClick += new System.EventHandler(this.HtmlAnchor_Click); 

我有还定义了“HtmlAnchor_Click”方法。 当我点击HtmlAnchor控件时,事件不会触发。

如何触发此事件?

+0

喜先生斯坦,是这种定位的按钮被宣告你的ASCX? –

+0

它是在我的aspx.cs页面中动态声明的。 – Stan

+0

这是否意味着.cs创建了一个控件,而页面不知道控件/ html将显示在哪里不是它?或者你是否将控件添加到某个面板,如pan.Controls.Add(HmtlAnchor);? –

回答

0

<%@页EnableEventValidation = “假”

<ul> 
    <li> 
     <a id="AnchorButton" onserverclick="Button1_Click" runat="server">&lt;&lt;</a> 
    </li> 
</ul> 
<div> 
    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
</div> 

代码隐藏:

void MyMethod() 
{ 
    System.Web.UI.HtmlControls.HtmlAnchor AnchorButton = new System.Web.UI.HtmlControls.HtmlAnchor(); 
    AnchorButton.Visible = false; 
    AnchorButton.ServerClick += new System.EventHandler(this.Button1_Click); 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Response.Write("CLICK"); 
} 
0

你可以保持面板控制(System.Web.UI.WebControls.Panel)在您的aspx页面中,然后从服务器端动态添加控件到面板。

例如:

System.Web.UI.HtmlControls.HtmlAnchor AnchorButton = new System.Web.UI.HtmlControls.HtmlAnchor(); 
AnchorButton.Visible = false; 
AnchorButton.ServerClick += new System.EventHandler(HtmlAnchor_Click); 
panel.Controls.Add(AnchorButton);