0

我为文件上传输入创建了一个复合控件(使用 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

任何帮助将不胜感激。先谢谢了。

4

1 回答 1

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

它开始按预期工作。

于 2014-10-24T12:12:56.803 回答