前些天在开发一个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"; 竟然就好了。 |