C# 回发时丢失动态创建的上载文件

C# 回发时丢失动态创建的上载文件,c#,asp.net,postback,C#,Asp.net,Postback,我有一个web应用程序。 在我的页面上,我看到了: <div id="myDiv" runat="server" /> //and a button that will call a method to save my inputs 我的问题是: 当我第一次单击“更改”按钮时,它会将文本框和按钮更改为上载控件,这一个没有问题,但当我单击“保存”按钮时,页面将从LoadForm()重新传递,让我的页面创建一个文本框,而我已将其更改为上载文件,如何解决此问题?? 我不知道我是否应该添加

我有一个web应用程序。 在我的页面上,我看到了:

<div id="myDiv" runat="server" />
//and a button that will call a method to save my inputs
我的问题是: 当我第一次单击“更改”按钮时,它会将文本框和按钮更改为上载控件,这一个没有问题,但当我单击“保存”按钮时,页面将从LoadForm()重新传递,让我的页面创建一个文本框,而我已将其更改为上载文件,如何解决此问题??
我不知道我是否应该添加更多的细节,或者它很清楚, 提前谢谢

private void LoadForm()
        {
            ....
            button.Click += new EventHandler(button_Click);
            this.myDiv.Controls.Add(textBox);
            this.myDiv.Controls.Add(button);
    }
void button_Click(object sender, EventArgs e)
        {
            ...
            this.myDiv.Controls.Clear();
            this.myDiv.Controls.Add(here will be the fileupload control);
    }

将LoadForm方法置于if(!isPostback)条件下,因为您不想在单击“保存”按钮时再次创建文本框和按钮。
此外,您还可以使用Request.Forms collections访问动态创建的文件上载。问题是,由于您是动态创建文件上载,要使其再次显示,必须将其重新添加到页面中。这里的一个选项是始终在页面上设置控件,只需切换可见性即可。

我无法将loadform放入页面中!iPostBack因为我正在动态创建我的按钮,并且在按钮上添加了一个事件处理程序,如果我没有从loadform传递,它将不会在单击时看到事件,因为它不会重新创建按钮您可以发布页面的代码吗?加载事件和按钮单击事件?如果没有足够的代码,我只能推测,但看起来您的LoadForm可能需要在!这是后向块。我不能把我的装货单放在里面!iPostBack因为我正在动态创建我的按钮,并且在按钮上添加了一个eventhandler,如果我没有从loadform传递,它将不会在单击时看到事件,因为它不会重新创建按钮。我将用一些代码编辑我的问题。我不知道这是否是最好的解决方案,但目前效果很好。请记住,如果可见性设置为false,ASP.Net不会向页面写入任何内容。这有助于减少页面和视图状态的大小。很高兴我能帮忙。
private void LoadForm()
        {
            ....
            button.Click += new EventHandler(button_Click);
            this.myDiv.Controls.Add(textBox);
            this.myDiv.Controls.Add(button);
    }
void button_Click(object sender, EventArgs e)
        {
            ...
            this.myDiv.Controls.Clear();
            this.myDiv.Controls.Add(here will be the fileupload control);
    }