0

私のグリッドビューには、フッターに新しいレコードを挿入するためのフィールドがあります。

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 を使用すると、代わりにサブを実行できます。

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 に答える