2010-02-01 5 views
0

나는 목록보기에서 LinkButton과 HiddenField를가집니다. HiddenField에서 숨겨진 값을 가져 와서 Session에 저장하고 LinkButton을 클릭하면 세션에 저장된 숨겨진 값을 다른 페이지로 전송할 수 있습니다. 하지만이 오류 메시지가 "개체 참조가 개체의 인스턴스로 설정되어 있지 않습니다." 여기에 함수는 다음과 같습니다ASP.NET은 ItemCommand의 목록보기에서 숨겨진 값을 가져옵니다.

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을 클릭 할 때마다, 그것은 위의 오류 메시지와 함께 오류가 발생합니다. 입력 해 주셔서 감사합니다.

답변

1

내 생각 엔 FindControl이 행 내에서 hfTimeSheetId 컨트롤을 찾지 못했을 것입니다. 관리 컨트롤 (즉, runat = "서버")로 지정 했습니까?

또한 ASPX 코드를 제공하여 컨트롤을 정의하는 방법을 확인하면 도움이 될 수 있습니다.

+0

방금 ​​마크 업을 포함하도록 질문을 업데이트했습니다. – loso

+0

실수를 발견했습니다. 마크 업 ID = "hfTimeSheetId1"은 ID = "hfTimeSheetId"여야합니다. 자, 다 괜찮아. 고맙습니다. – loso

0

FindControl이 null을 반환하면 예외가 발생합니다. 변경하려면 다음으로 변경하십시오.

Dim id As HiddenField = TryCast(e.Item.FindControl("hfTimeSheetId1"), HiddenField) 
관련 문제