在asp.net中添加一个包含asp标签的div

时间:2014-07-25 09:46:48

标签: asp.net webforms

我尝试在按钮点击事件中添加div,其中包含asp:Label 我使用的代码如下。

CODE

string htmlString = "<div><asp:Label ID=\"l1\" runat=\"server\" Text=\"WELCOME\"></asp:Label></div>";
Panel1.Controls.Add(new LiteralControl(htmlString));

但我无法查看特定的div 请尽量解决这个问题。

提前谢谢。

3 个答案:

答案 0 :(得分:2)

为这样的服务器控件添加标记将不会处理服务器控件,而只是将该标记放在生成的HTML中

您可以使用HTmlGenericControl来执行此操作

using System.Web.UI.HtmlControls;

Label lbl = new Label();
lbl.Text = "WELCOME";

HtmlGenericControl div = new HtmlGenericControl("div");

div.Controls.Add(lbl);
Panel1.Controls.Add(div);

要在DataList中添加div,您可以执行以下操作

DataList dl = new DataList();
//Init your DataList here 
dl.DataSource = dt; // `dt` is a DataTable with my data
dl.DataBind()

HtmlGenericControl div = new HtmlGenericControl("div");

div.Controls.Add(dl);
Panel1.Controls.Add(div);

答案 1 :(得分:1)

您不能直接使用服务器控件来输出流。你需要Html Generic Controls

您可以按如下方式声明控件

HtmlContainerControl Container = new HtmlGenericControl("div");

然后将其添加到Panel1中,如下所示

Panel1.Controls.Add(Container);

您可以在div中添加可能的控件,注意html上的Label呈现为span,因此您需要使用跨度而不是标签。

结合所有你可以写的如下

HtmlContainerControl Container = new HtmlGenericControl("div");
HtmlContainerControl Span= new HtmlGenericControl("span");
//set the property here
Span.Attributes.Add("innerHtml", "WELCOME");

Contriner.Controls.Add(Span);
Panel1.Controls.Add(Container);

答案 2 :(得分:1)

所有asp控件都将在浏览器中呈现为html控件..您的代码将呈现为

  

<span id="l1">WELCOME</span>

但是当你使用LiteralControl它只添加一个html类型控件.. 所以你的代码不会被解析..结果将是一个无效的html标签..

创建标签asp控件并添加到面板

      Label label1 = new Label();
      label1.Text = "WELCOME";
      Panel1.Controls.Add(label1);