且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

动态添加控件在ASP.NET AJAX一个UpdatePanel

更新时间:2023-01-06 22:04:37

在asp.net,会自动在每次回发所产生的ASPX文件控制。您所创建的控件不在ASPX code所以框架不会为您创建它们。当您第一次执行Button1_Click的方法,你添加一个额外的控制页面。第二次执行Button1_Click的方法,你在另一个帖子回和第一个加按钮已被遗忘。所以这回发的结果就是你再另外一个按键即可获得。

In asp.net, the controls in the ASPX file are automatically generated on each postback. The controls you've created are not in the ASPX code so the framework does not create them for you. The first time you execute the Button1_Click method, you add one extra control to the page. The second time you execute the Button1_Click method, you're on another post back and that first extra button has been forgotten about. So the result of that postback is you get one extra button again.

这将在每次创建一个额外的控制你单击按钮(虽然时间戳将更新每次preSS因为正在重新创建的控制按钮)

This will create one extra control each time you click the button (although the timestamps will update each time you press the button because the controls are being re-created)

protected void Button1_Click(object sender, EventArgs e)
{
    int count = 0;

    if (ViewState["ButtonCount"] != null)
    {
        count = (int)ViewState["ButtonCount"];
    }

    count++;
    ViewState["ButtonCount"] = count;

    for (int i = 0; i < count; i++)
    {
        Literal literal = new Literal();
        literal.Text = DateTime.Now.ToString();
        literal.ID = DateTime.Now.Ticks.ToString();

        UpdatePanel1.ContentTemplateContainer.Controls.Add(literal);
        PlaceHolder1.Controls.Add(literal);
    }            
}