2015-12-03 60 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);