【问题标题】:ASP.NET Can't dynamically add new controls to the pageASP.NET 无法向页面动态添加新控件
【发布时间】:2013-04-08 00:57:45
【问题描述】:

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

我已经在ASPX页面中定义了面板:

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

&lt;% %&gt; 标签中尝试动态添加正确的文件上传表单计数。 文件上传表单的数量取决于表中的 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);

但是没有成功,当我在服务器的 HTML 响应中推送 Ctrl + U 时,我得到了:

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

HTML 响应中没有控件,因此在服务器呈现的页面中。

我尝试不使用之前定义的面板,并将其动态添加到runat form,但结果还是一样。

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

【问题讨论】:

  • 您能告诉我们您遇到的错误吗?
  • @oleg 你还应该设置任何 asp.net 控件的 runat=server 属性
  • @Devjosh 在任何??? )))
  • 添加按钮和文件上传控件的代码是在哪里添加的?

标签: c# asp.net file-upload add dynamic-controls


【解决方案1】:

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

【讨论】:

  • 您的面板是否在UpdatePanel 下?
【解决方案2】:

你可以用这个

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

【讨论】:

    猜你喜欢
    • 2010-10-17
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多