我尝试在按钮点击事件中添加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
请尽量解决这个问题。
提前谢谢。
答案 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);