上传控件不就是 <input type=file id=file1 runat=server>这样的控件吗?你就在服务器端根据需要,动态产生一个这样的控件,加入到事先规划好的位置就行了。亿设事先已放置一个容器控件(TABLE, PANEL, PLACEHOLDER等),ID为 Container1. 有一个Button1 按钮。点击后要求增加一个上传控件,则:private void Button1_Click(...)
{
HtmlInputFile newFile = new HtmlInputFile();
newFile.ID = "file1"; //添加多个控件时,要分配不同的ID,此处未做处理
Container1.Controls.Add( new LiteralControl("<BR>"));
Container1.Controls.Add( newFile );
}
{
HtmlInputFile newFile = new HtmlInputFile();
newFile.ID = "file1"; //添加多个控件时,要分配不同的ID,此处未做处理
Container1.Controls.Add( new LiteralControl("<BR>"));
Container1.Controls.Add( newFile );
}
{
protected System.Web.UI.WebControls.PlaceHolder PH1;
protected System.Web.UI.WebControls.Button Button1;
public int i=0;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
HtmlInputFile ccc=new HtmlInputFile();
ccc.ID="upFile"+i.ToString();
ccc.Attributes.Add("Runat","Server");
PH1.Controls.Add( new LiteralControl("<BR>"));
PH1.Controls.Add( ccc);
i++;
}
{
i++; //增加一个上传组件 //按需要生成所有的上传组件
for (int x=0;x<=i;x++)
{
HtmlInputFile ccc=new HtmlInputFile();
ccc.ID="upFile"+x.ToString();
ccc.Attributes.Add("Runat","Server");
PH1.Controls.Add( new LiteralControl("<BR>"));
PH1.Controls.Add( ccc);
}
}
让您费心了,原谅我刚开始学,谢谢