The null object reference was solved. Now I need the returned value to be saved to the record. Here is the data bound code:
Private Sub dvSMasterCurrentYear_DataBound(sender As Object, e As EventArgs) Handles dvSMasterCurrentYear.DataBound
Dim dv As DetailsView = New DetailsView
dv = dvSMasterCurrentYear
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
Here is the GetYear
function:
Public Function GetYear()
Dim thisDate As Date = Now
Dim thisYear As String
'thisDate = #2/12/1969#
thisYear = Year(thisDate)
Return thisYear
End Function
For inserting I use this :
Private Sub DetailsView1_ItemInserting(sender As Object, e As DetailsViewInsertEventArgs) Handles dvSMasterCurrentYear.ItemInserting
Dim view As DetailsView = DirectCast(sender, DetailsView)
Dim txtYearPlant As TextBox = DirectCast(DirectCast(sender, DetailsView).FindControl("PlantYear"), TextBox)
End Sub
This is what the mark up looks like:
<asp:TemplateField HeaderText="Year Plant (yyyy)*">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("PlantYear") %>'></asp:Label>
<%# Eval("Year")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="PlantYear" runat="server"></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="PlantYear" runat="server" Text='<%# GetYear()%>'></asp:TextBox >
</InsertItemTemplate>
</asp:TemplateField>
Markup looks like:
<asp:TemplateField HeaderText="Year Plant (yyyy)*">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("PlantYear")%>'></asp:Label>
<%# Eval("Year")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="PlantYear" runat="server"></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="PlantYear" runat="server" Text='<%# GetYear()%>'></asp:TextBox >
</InsertItemTemplate>
</asp:TemplateField>
I don't know why the value is not being saved, so how do I fix it? Thank you for your help.