0

我们在搜索框中输入文字,点击搜索按钮。

如果找到数据并单击重置按钮,您将优雅地返回搜索屏幕。

如果未找到数据并且您单击重置按钮,则应用程序会中断并显示以下错误消息:

Object reference not set to an instance of an object.

此错误指向此行:

Dim getAll As CheckBox = DirectCast(gridview1.HeaderRow _
 .Cells(0).FindControl("getAll"), CheckBox)

这是标记:

<HeaderTemplate>
 <asp:CheckBox ID="getAll" runat="server" onclick="getAllOf(this);CheckBox_getAll();" />
</HeaderTemplate>

代码隐藏中的重置按钮:

Protected Sub btnReset_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnReset.Click
    ' Simple clean up text to return the Gridview to it's default state
    searchBox.Text = ""
    SearchString = ""
    BindData()
End Sub

任何想法如何解决这一问题?

这是我们最明显的应用程序之一

非常感谢提前

4

1 回答 1

0

尝试设置GridView.ShowHeaderWhenEmpty为真。

听起来,当您的数据控件为空时,您的标题不会显示。因此,您的代码尝试访问标题行,并由于对象尚未初始化而引发错误。


那,或者你可以防止 HeaderRow 不存在的可能性:

Dim getAll As CheckBox

If gridview1.HeaderRow IsNot Nothing Then
    getAll = DirectCast(gridview1.HeaderRow.Cells(0).FindControl("getAll"), CheckBox)
End If
于 2013-04-04T18:32:43.470 回答