我在列表视图中有LinkButton和HiddenField。我想从HiddenField中获取隐藏值,因此我可以将它存储在Session中,当单击LinkButton时,它会将隐藏值(存储在Session中)传输到另一个页面。但是我收到此错误消息“对象引用未设置为对象的实例”。这是功能:
Protected Sub lvTimeSheet_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewCommandEventArgs) Handles lvTimeSheet.ItemCommand
Dim id As HiddenField = TryCast(e.Item.FindControl("hfTimeSheetId"), HiddenField)
Dim myId As String = id.Value.ToString
Session("myId") = myId
Server.Transfer("Destination.aspx")
End Sub
加价
</asp:LinkButton><asp:HiddenField ID="hfTimeSheetId1" runat="server" Value='<%# Eval("hfTimeSheetId") %>' />
每次单击LinkButton时,都会导致上述错误消息出错。感谢您的任何意见。
答案 0 :(得分:1)
我的猜测是FindControl
未找到行内的hfTimeSheetId
控件。您是否将其指定为托管控件(即runat =“server”)?
此外,如果您提供ASPX代码以查看如何定义控件,则可能会有所帮助。
答案 1 :(得分:0)
FindControl返回null,只有异常。尝试将其更改为:
Dim id As HiddenField = TryCast(e.Item.FindControl("hfTimeSheetId1"), HiddenField)