0

在我的 gridview 中,我有用于在页脚中插入新记录的字段。

在我的 objectdatasource 选择事件中,如果没有记录返回,我绑定一个模拟行以强制显示页脚,以便它们仍然可以添加记录。由于该行不包含真实数据,因此我隐藏了该行。

    ...
    If result.ItemCount = 0 Then
        result = mockRow
        AddHandler mygridview.PreRender, AddressOf HideRow
    End If
End Sub

Private Sub HideRow(ByVal sender as Object, ByVal e as EventArgs)
    mygridview.Rows(0).Visible = False
End Sub

这工作正常。但是,我想像这样浓缩它:

    ...
    If result.ItemCount = 0 Then
        result = mockRow
        AddHandler mygridview.PreRender, Function() mygridview.Rows(0).Visible = False
    End If
End Sub

这编译得很好,但该行不会被隐藏。谁能告诉我为什么我的匿名函数没有被命中?

4

3 回答 3

2

问题是您正在创建一个返回布尔值而不是分配值的函数。如果您使用的是 VB 2008,您会遇到困难,但使用 VB 2010,您可以改为使用 sub。

AddHandler mygridview.PreRender, Sub() mygridview.Rows(0).Visible = False
于 2010-04-24T02:47:08.157 回答
0

你不需要添加参数吗?

AddHandler mygridview.PreRender, _ 
   Function(sender as Object, e as EventArgs) mygridview.Rows(0).Visible = False
于 2010-04-23T21:06:32.960 回答
0

这就是你需要的:

AddHandler mygridview.PreRender, Sub(sender as Object, e as EventArgs) mygridview.Rows(0).Visible = False

所以,你们都说对了一半。

于 2010-07-13T19:11:04.030 回答