2014-10-23 1 views
0

Я создал составной элемент управления для ввода файлов (с помощью элемента управления HtmlInputFile). Моя проблема в том, что все работает нормально, пока я не попытаюсь сохранить файл, используя «SaveAs» HtmlInputFile в коде моей страницы. Всякий раз, когда я нажимаю кнопку для загрузки файла, я получаю «объект, не установленный на экземпляр 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

И, наконец, получил его на работу. Оказывается, мне не хватало 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 

и он начал работать, как ожидалось.

Смежные вопросы