2015-12-11 1 views
3

Что мне нужно сделать, чтобы исправить «ссылку на объект, не установленную на экземпляр объекта» ошибка. На какой предмет он ссылается? код:Когда я пытаюсь добавить вставить значение в asp.net Detailsview, я получаю «Ссылка на объект, не установленную на экземпляр объекта»

Private Sub dvSMasterCurrentYear_DataBound(sender As Object, e As EventArgs) Handles dvSMasterCurrentYear.DataBound 
    Dim dv As DetailsView = New DetailsView 
    If DetailsViewMode.Insert Then 
     DirectCast(dv.FindControl("PlantYear"), TextBox).Text = GetYear() 
    End If 
End Sub 

Получить возвращается Год в текущем году, он появляется в DetailsView текстовом поле "PlantYear". Я пытаюсь вставить значение, используя приведенный выше код.

благодарит за вашу помощь.

+0

Вы должны разрешить, что 'FindControl' может вернуть null/Nothing. Когда/если этот код будет вызывать NRE – Plutonix

ответ

4

Скорее всего, FindControl на самом деле не нахо дит контроль. Было бы разумно поместить чек, чтобы убедиться, что он действительно нашел то, что вы намеревались найти:

Private Sub dvSMasterCurrentYear_DataBound(sender As Object, e As EventArgs) Handles dvSMasterCurrentYear.DataBound 
    Dim dv As DetailsView = New DetailsView 
    If DetailsViewMode.Insert Then 
     Dim ctl = dv.FindControl("PlantYear") 
     If ctl IsNot Nothing Then 
      DirectCast(dv.FindControl("PlantYear"), TextBox).Text = GetYear() 
     Else 
      Throw New Exception("Control was not found") 
     End If   
    End If 
End Sub 
+0

, это позаботилось о Null Object Reference. Я все еще не могу получить значение для сохранения в записи. Вот функция, я использую GetYear: Public Function GetYear() Dim thisDate As Date = Теперь Dim thisYear As String «thisDate = №2/12/1969 # thisYear = Год (thisDate) Return thisYear End Function –

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

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