以编程方式将控件添加到ASP.NET C#按钮上的页面单击

时间:2013-03-21 12:35:44

标签: c# asp.net

我希望能够在我的asp.net c#页面上为特定的游戏周添加灯具。

当用户点击添加按钮时,它应创建两个下拉菜单,以便他们可以选择主队和客队。我希望能够允许尽可能多的用户想要添加的灯具,因此我需要一种动态的方式来向页面添加控件。一旦添加了所有灯具,我希望将它们全部保存到数据库中。

滚动论坛我发现以下方法可以以编程方式添加控件:

C#

        protected void AddTeamButton_Click(object sender, EventArgs e)
    {
        DropDownList homeTeamName = new DropDownList();
        homeTeamName.Items.Add("Arsenal");
        homeTeamName.Items.Add("Aston Villa");
        homeTeamName.ID = "homeTeam";
        PlaceHolder1.Controls.Add(homeTeamName);

        DropDownList awayTeamName = new DropDownList();
        awayTeamName.Items.Add("Arsenal");
        awayTeamName.Items.Add("Aston Villa");
        awayTeamName.ID = "awayTeam";
        PlaceHolder1.Controls.Add(awayTeamName);
    }

ASPX:

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

然而,这仅创建一组控件,第二次单击添加时,没有任何反应。当我需要保存时,它也不会创建要访问的唯一ID。

我有什么想法可以解决我遇到的这些问题?

1 个答案:

答案 0 :(得分:0)

asp.net中的动态控件并不是那么容易 您需要在每个帖子上创建它们(理想情况下在Init上),直到您在页面上需要它们为止 您还需要为其提供唯一ID。

如果你想创建多个控件,我建议你在Session中维护一个计数器,并使用它来循环并在Init上生成所需的控件。

AddTeamButton_Click上,您只会增加计数器并添加一组控件。