2
解決了null對象引用。現在我需要將返回的值保存到記錄中。下面是數據綁定代碼:爲什麼返回的值沒有保存在DetailsView中?
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
這裏是GetYear
功能:
Public Function GetYear()
Dim thisDate As Date = Now
Dim thisYear As String
'thisDate = #2/12/1969#
thisYear = Year(thisDate)
Return thisYear
End Function
對於插入我用這個:
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
這就是標記的樣子:
<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>
M arkup樣子:
<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>
我不知道爲什麼沒有被保存的價值,因此如何解決呢? 謝謝你的幫助。
標記看起來像: '><%#Eval(」Year「)%> ItemTemplate> asp:TextBox> < EditItemTemplate> '> asp:TextBox> InsertItemTemplate> asp:模板列> –