2017-06-21 66 views
2

添加鏈接按鈕我有它顯示了一個選項卡的列表項的鏈接按鈕:從innerHTML的

<li runat="server" id="liActivityInvoices"><a href="#tabActivityInvoices">Invoices</a><asp:LinkButton runat="server" ID="btnLoadInvoice" OnClick="btnInvoiceActivity_Click" CssClass="btnListSmall" Width="90px"></asp:LinkButton></li> 

enter image description here

在後面的代碼它搜索發票和獲得的總收入。這則更新列表項,顯示貨幣和財政收入在標籤:

liActivityInvoices.InnerHtml = "<a href=\"#tabActivityInvoices\">Invoices (" + Company.Current.DefaultCurrency + ": " + Convert.ToDecimal(ds.Tables[1].Rows[0]["TotalRev"]) + ")</a> <asp:LinkButton runat=\"server\" ID=\"btnLoadInvoice\" OnClick=\"btnInvoiceActivity_Click\" CssClass=\"btnListSmall\" Width=\"90px\"></asp:LinkButton>"; 

enter image description here

a href部分顯示,但鏈接按鈕消失。如何使用InnerHtml顯示鏈接按鈕?

+0

這一個是重複的可能https://stackoverflow.com/questions/20053217/adding -a-asp-control-to-page-from-code-behind-within-innerhtml –

回答

2

LinkBut​​ton是一個服務器控件。您不能使用inner html創建服務器控件。您將不得不將控件作爲子控件添加到liActivityInvoices。

var anchor = new LiteralControl("<a href=\"#tabActivityInvoices\">Invoices (" + Company.Current.DefaultCurrency + ": " + Convert.ToDecimal(ds.Tables[1].Rows[0]["TotalRev"]) + ")</a>"); 
var lnkButton = new LinkButton 
{ 
    ID = "btnLoadInvoice", 
    CssClass = "btnListSmall", 
    Width = new Unit("90px") 
}; 
lnkButton.Click += btnInvoiceActivity_Click; 
liActivityInvoices.Controls.Add(anchor); 
liActivityInvoices.Controls.Add(lnkButton); 
+0

如何添加子控件? – user123456789

+0

已更新的答案。 – H77

+0

好吧,顯示鏈接按鈕,但有一個問題,當我點擊按鈕,我得到的錯誤'未捕獲的ReferenceError:btnInvoiceActivity_Click沒有定義' – user123456789

1

innerHTML是一個DOM元素的屬性,因此區分大小寫。 將您的代碼修改爲liActivityInvoices.innerHTML = ...

+0

這裏的屬性是一個服務器控件(asp.net),而不是JavaScript。 – H77

0

您不能將ASP.NET服務器控件作爲字符串文字添加。

使用PlaceHolder添加動態服務器控件或使用作爲一個子控件控件添加到liActivityInvoices也可以創建DivIndirizzo