loso
loso

Reputation: 3

ASP.NET get hidden value from list view on ItemCommand

I have LinkButton and HiddenField in a list view. I want to get the hidden value from HiddenField, so I can store it in Session and when a LinkButton is clicked it transfer the hidden value ( stored in Session) to another page. But I get this error message "Object reference not set to an instance of an object." Here's the function:

    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

The mark-up

</asp:LinkButton><asp:HiddenField ID="hfTimeSheetId1" runat="server" Value='<%# Eval("hfTimeSheetId") %>' />

Every time the LinkButton is clicked, it causes error with above error message. Thank you for any input.

Upvotes: 0

Views: 2104

Answers (2)

Jagd
Jagd

Reputation: 7306

The FindControl is returning null, hense the exception. Try changing it to:

Dim id As HiddenField = TryCast(e.Item.FindControl("hfTimeSheetId1"), HiddenField)

Upvotes: 0

CAbbott
CAbbott

Reputation: 8098

My guess would be that the FindControl isn't finding the hfTimeSheetId control within the row. Do you have it designated as a managed control (i.e. runat="server")?

Also, it might help if you provided the ASPX code to see how you're defining the controls.

Upvotes: 1

Related Questions