3

我有一个简单的gridview,其中一行包含一个标签。我试图在 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 回答