2011-08-26 25 views
0

我動態的代碼構建HTML背後(同時從數據庫中讀取數據和創建按鈕控件)在客戶端顯示HTML後動態構建它的服務器端在asp.net

所以我後面的代碼是一樣的東西:

strHTML = <table cellspacing='0' cellpadding='0' border='3'><tr><td align='center' valign='middle' width="150" height="50" class="bItem"><asp:Button CssClass='btnDashboard' width='170' Height='70' ID='Button2' runat='server' Text="MyProfile" /></td></tr></table>" 

上面的字符串應該顯示客戶端上動態創建的按鈕。

我的客戶方代碼:

<table cellspacing="0" cellpadding="3" border="0"> 
    <tr> 
     <td><% %> 
     </td> 
    </tr> 
</table> 

如何顯示在服務器標籤中動態創建的HTML?
我嘗試使用div標籤,但按鈕出來沒有文字,我不能「點擊」他們。

回答

2

您可以通過這種方式添加HTML控件,標籤等

建立在你的頁面一個div:

<div id="divtest" runat="server"></div> 

由於RUNAT =「服務器」是那裏你可以在你的代碼訪問DIV背後。以這種方式添加您的html代碼。

strHTML = "<table cellspacing='0' cellpadding='0' border='3'><tr><td align='center' valign='middle' width=""150"" height=""50"" class=""bItem""><asp:Button CssClass='btnDashboard' width='170' Height='70' ID='Button2' runat='server' Text=""MyProfile"" /></td></tr></table>" 

divtest.InnerHtml = strHTML 

但是你不能添加這樣的asp控件。

Button b = new Button(); 
     b.Text = name; 
     b.ID = id; 
     b.Click += new EventHandler(Button_Click); 

form1.Controls.Add(GetButton("Button1", "Click")); 
1

您不能以這種方式添加Web服務器控件;如果控件是動態創建的,則需要將它們動態添加到頁面的控件樹中。 MSDN解釋了這一點here

1

您可以使用PlaceHolder Class作爲動態生成按鈕的容器。

從你的例子中,我不確定你是否也生成了一個表,但如果是這樣,你可以使用HtmlTable Class來創建它,以生成包含你的按鈕的表。該表可以添加到佔位符中。

PlaceHolder Class頁面上的示例代碼顯示瞭如何將控件添加到佔位符控件,按鈕。

相關問題