3

行の1つにラベルを含む単純なグリッドビューがあります。RowDataBoundイベントでそのラベルにアクセスしようとしていますが、何らかの理由で「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示され続けます。FindControlを使用している行でエラーが発生しました。

「gvQReport.FindControl」、「e.Row.FindControl」、「Me.FindControl」を使用してみましたが、何も機能しません。

私はこれを正しく行っていませんか?

ありがとう!

    Protected Sub gvQReport_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
         Dim lblTest As Label = CType(gvQReport.FindControl("lblTest"), Label)
         lblTest.Text = "test Label"
    End Sub


<asp:GridView ID="gvQReport" OnRowDataBound="gvQReport_RowDataBound" runat="server">
     <Columns>
            <asp:TemplateField HeaderText="Test">
                <ItemTemplate>
                    <asp:Label ID="lblTest" runat="server" Text=""></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
     </Columns>
</asp:GridView>
4

1 に答える 1

7

RowプロパティGridViewRowEventArgsは現在の行です。全体ではなく、そこでコントロールを探しますGridView

Protected Sub gvQReport_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
     If e.Row.RowType = DataControlRowType.DataRow Then
         Dim lblTest As Label = CType(e.Row.FindControl("lblTest"), Label)
         lblTest.Text = "test Label"
     End If
End Sub
于 2012-04-05T14:23:38.383 に答える