asp.net - 当我尝试添加插入值到 asp.net 详细信息 View 中时,我得到 "Object reference not set to an instance of an object"

标签 asp.net .net vb.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

获取年份返回当前年份,它显示在详细信息 View 文本框“PlantYear”中。我尝试使用上面的代码插入值。

感谢您的帮助。

最佳答案

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

关于asp.net - 当我尝试添加插入值到 asp.net 详细信息 View 中时,我得到 "Object reference not set to an instance of an object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34228484/

相关文章:

asp.net - 如何在 LINQ 中从给定的 Sql Server 获取数据库名称

asp.net - 将 &lt;script&gt; 标签注入(inject)到代码后面的 <head> 中

javascript - 如何使用javascript访问gridview单元格值

.net - 有没有办法以编程方式连接 Excel 文件?

vb.net - VB 中的基本系统信息

c# - 保存到 Active Directory - 拒绝域管理员访问

c# - node.js 的 .net native 扩展

c# - 后台 Excel 线程未被杀死 C#

vb.net - 如何使用 vb.net 获取子字符串日期(年份)?

vb.net - 随机查找1-12之间不重复的数字