
前些天在开发一个WebControl中,向控件中增加了一个FileUpload,竟然发现此时的FileUpload无法获取到FileName值。
测试代码如下:
private FileUpload _FileUpload;
public TestControl()

...{
_FileUpload = new FileUpload();
_FileUpload.EnableViewState = true;
Button imageSelectbutton = new Button();
this.Controls.Add(_FileUpload);
this.Controls.Add(imageSelectbutton);
imageSelectbutton.Click += new EventHandler(imageSelectbutton_Click);
}
void imageSelectbutton_Click(object sender, EventArgs e)

...{
if ( string.IsNullOrEmpty( _FileUpload.FileName.Trim() ) )

...{ //竟然一直为空 }
}
这个问题比较奇怪,一直没见过这个问题,对于页面的ViewState也确实开启着,但是为什么竟然没有值呢。
于是采用比较法,另外建了一个页面只拖一个FileUpload上去,比较发现了问题。 在控件中的FileUpload页面,有点差别Enctype属性没有。 于是在控件中增加一行
this.Page.Form.Enctype = "multipart/form-data";