c#页面中panel容器中添加label的问题

landry12345 2009-10-15 07:51:20
我要在panel容器中创建n个label,新建一个后在下一行继续新建

for (int i = 0; i < n; i++)
{
DropDownList2.Items.Add("第"+(i+1)+"题");
Label lb = new Label();
lb.Text =Convert.ToString(i + 1);
Panel1.Controls.Add(lb);
//1、如何给lb指定name属性,在winform可以,asp.net不可以
//2、这里如何换行?asp.net里label没有position属性
}

以上两个问题如何解决?
...全文
880 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
草根醉秋意 2009-10-15
  • 打赏
  • 举报
回复
动态生成的控件每次页面刷新或者是PostBack的时候都要从新初始化并添加到控件树种
草根醉秋意 2009-10-15
  • 打赏
  • 举报
回复
可以动态为服务器端的空间添加自定义的属性

Label lb = new Label();
lb.Text = "label1";
lb.Attributes.Add("name", "lblName");
我姓区不姓区 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 landry12345 的回复:]
为什么每次posback后生成的动态label就消失了呢?有法子解决吗?
[/Quote]
在Page_Load中把动态添加控件的代码再写一次,而且不能写在if(!IsPostBack)里
landry12345 2009-10-15
  • 打赏
  • 举报
回复
为什么每次posback后生成的动态label就消失了呢?有法子解决吗?
liaoyukun111 2009-10-15
  • 打赏
  • 举报
回复
提供思路
<asp:Table ID="showdiv" runat="server">
</asp:Table>

protected void Page_Load(object sender, EventArgs e)
{

List<string> a = new List<string>() { "a1", "a2","3a","4a","5a",};
TableRow trs = new TableRow();
TableCell tc1s = new TableCell();
TableCell tc2s = new TableCell();
tc1s.Width = 118;
tc2s.Width = 527;

tc1s.VerticalAlign = VerticalAlign.Middle;
tc2s.VerticalAlign = VerticalAlign.Middle;
tc1s.Style.Add("text-align", "left");
tc2s.Style.Add("text-align", "left");
Label l = new Label();
l.Text = "部门名";
tc1s.Controls.Add(l);
Label l1 = new Label();
l1.Text = "当前序号";
tc2s.Controls.Add(l1);


trs.Cells.Add(tc1s);
trs.Cells.Add(tc2s);
showdiv.Rows.Add(trs);
foreach (var b in a)
{
TableRow tr = new TableRow();
TableCell tc1 = new TableCell();
TableCell tc2 = new TableCell();
tc1.Width = 118;
tc2.Width = 527;

tc1.VerticalAlign = VerticalAlign.Middle;
tc2.VerticalAlign = VerticalAlign.Middle;

Label l2 = new Label();
l2.Text ="aaa";
tc1.Controls.Add(l2);

TextBox tb = new TextBox();
// tb.ID = b.tex
// tb.Text = b.ordinal.ToString();

tc2.Controls.Add(tb);

tr.Cells.Add(tc1);
tr.Cells.Add(tc2);
showdiv.Rows.Add(tr);
}
}
我姓区不姓区 2009-10-15
  • 打赏
  • 举报
回复
1、服务器控件没有Name属性,只有ID属性
2、换行你可以这样:
Literal lt = new Literal();
lt.Text = "<br />";
Panel1.Controls.Add(lt);
liaoyukun111 2009-10-15
  • 打赏
  • 举报
回复
我是放在Table中创建的
landry12345 2009-10-15
  • 打赏
  • 举报
回复
要怎么换行呢?而且我发现一旦刷新页面后新建的动态按钮全部消失了
小_虎 2009-10-15
  • 打赏
  • 举报
回复
可以,我建议用JS实现。

用.net的话,请搜索"动态添加服务器控件"

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧