2013-04-08 103 views
1

我想动态地将一些FileUploads添加到页面并控制它回发,因为如果使用纯html标签而不是asp.net控件,它可能会导致问题文件上传。ASP.NET不能动态地添加新的控件到页面

我在ASPX页面定义面板:

<asp:Panel ID="panelViewer" BackColor="Azure" Width="400" Height="400" runat="server"> 
</asp:Panel> 

而且在<% %>标签试图动态添加的文件上传形式正确的计数。 文件上传表单的数量取决于表中的MySQL记录,对于用户可能不同。

我尝试添加动态如此,只是开始:

Button btn = new Button(); 
btn.Text = "click me!"; 
panelViewer.Controls.Add(btn); 

FileUpload fileUpload = new FileUpload(); 
fileUpload.BorderColor = System.Drawing.Color.Red; 
panelViewer.Controls.Add(fileUpload); 

但没有成功,当我推Ctrl + U从服务器HTML的响应,我有:

<div id="panelViewer" style="background-color:Azure;height:400px;width:400px;"> 
</div> 

HTML响应中没有控件,所以在服务器的渲染页面中。

我试过不使用先前定义的面板,并使其动态添加到runat form,但又是相同的结果。

我该如何解决这样的问题? 谢谢!

+0

你能告诉我们你所得到的错误? – 2013-04-08 02:12:15

+0

@oleg你还应该设置runat =任何asp.net控件的服务器属性 – Devjosh 2013-04-08 05:07:48

+0

@Devjosh at any ??? ))) – Secret 2013-04-09 19:05:23

回答

0

尝试将btn.ID作为控件的属性。

+0

已经尝试过,没有成功:( – Secret 2013-04-08 01:26:01

+0

你的面板在'UpdatePanel'下吗? – 2013-04-08 01:44:42

+0

你能告诉我们你得到的错误吗.. – 2013-04-08 02:10:17

0

您可以使用此

Style style = new Style(); 
style.BorderColor = System.Drawing.Color.Red; 
fileUpload.ApplyStyle(style);