2015-12-14 79 views
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> 

我不知道爲什麼沒有被保存的價值,因此如何解決呢? 謝謝你的幫助。

+0

標記看起來像: <%#Eval(」Year「)%> < EditItemTemplate>

回答

0

在私人小組DetailsView1_ItemInserting事件我改變

昏暗txtYearPlant作爲文本框= DirectCast(DirectCast(發件人,的DetailsView).FindControl( 「YearPlant」),文本框)

TO

昏暗txtYearPlant作爲文本框= TryCast(view.FindControl( 「YearPlant」),文本框) e.Values.Add( 「YearPlant」,txtYearPlant.Text)

所以現在在PlantYear文本框中的值保存到記錄。

相關問題