我为文件上传输入创建了一个复合控件(使用HtmlInputFile控件)。我的问题是,一切正常,直到我尝试使用HtmlInputFile" SaveAs"保存文件。在我的页面代码背后。每当我按下按钮上传文件时,我都会得到一个"对象没有设置为bla bla bla"。但是,如果我在SaveAs之前暂停执行(带有断点)然后逐步(F10),所有复合属性都有相应的数据,我可以有效地上传文件。
我很确定这与页面和控件的生命周期有关,但到目前为止我所阅读的所有内容都没有让我失望。任何人都可以在我执行Click事件后面的代码之前,如何强制复合控件加载/渲染?
触发SaveAs的代码非常简单:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
fup.xmsPostedFile.SaveAs(Server.MapPath(String.Format("~/memberpages/{0}", fup.xmsFileName)))
End Sub
fup.xmsPostedFile
属性仅引用_inputControl.PostedFile
属性。与fup.xmsFileName
相同。
任何帮助将不胜感激。谢谢你提前。
答案 0 :(得分:0)
终于开始工作了。结果我错过了EnsureChildControls()。我改变了这个属性:
Public ReadOnly Property xmsPostedFile() As HttpPostedFile
Get
Return _inputFile.PostedFile
End Get
End Property
到这个
Public ReadOnly Property xmsPostedFile() As HttpPostedFile
Get
EnsureChildControls()
Return _inputFile.PostedFile
End Get
End Property
它开始按预期工作。