2009-06-10 3 views
0

내가오류 웹 사이트

System.NullReferenceException 내 디자이너에서 드롭 다운 상자를 추가 한 후 내가 양식을 제출하는 동안 다음 오류가 점점 오전에 드롭 다운을 추가하는 동안 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. \ v1.5_production_05June09 \ Default.aspx.vb : C에서 WebApplication1._Default.collectEmailBodyText()에서 라인 (219)

아래 나 collectEmailBodyText 첨가 여분 두 라인()은

tempPanelDropDownBox = DirectCast(form1.FindControl(("txt_" & panelUsed & "_ddinput") + counter.ToString()), DropDownList) 

tempCollector = tempCollector + ":"+ tempPanelDropDownBox.SelectedItem.Text

답변

2

, FindControl 메소드의 호출이 NullReferenceException의 원인이됩니다 SelectedItem 같은 속성에 액세스하려고 그럼, Nothing (NULL)을 반환하는 것으로 보인다.

코드 FindControl("txt_" & panelUsed & "_ddinput") + counter.ToString())은 연결된 문자열의 서버 ID와 마지막에 가변 숫자처럼 보이는 드롭 다운 목록을 찾으려고합니다. 이것은 약간 이상하게 보입니다. 결국 그 번호를 원하니? 나는 동적으로 추가 된 컨트롤을 사용할 때 이와 비슷한 것을 기대한다.

2

가장 가능성있는 문제는 form1.FindControl이 컨트롤을 찾지 못한다는 것입니다. 먼저 찾기 컨트롤을 수행하고 그 값을 액세스하려고 시도하기 전에 null이 아닌지 확인하는 것이 좋습니다.

2

예외로 객체 중 하나에 null 값이 있습니다. 가장 쉬운 방법은 예외를 얻는 줄에 중단 점을 설정하고 QuickWatch와 같이 무언가를 사용하여 줄의 여러 부분을 평가하여 null을 반환하는지 확인하는 것입니다.

가장 확실한 것은 FindControl이 null을 반환한다는 것입니다. 다른 포스터가 말했듯이