2008-10-02 2 views
1

정의의 인스턴스로 설정되지 : 문제 (주는C 번호는, ASP.NET - NullReferenceException이 - 개체 참조가 사용 변수의 목적

Guid fldProId = (Guid)ffdPro.GetProperty("FieldId"); 
string fldProValue = (string)ffdPro.GetProperty("FieldValue"); 
FormFieldDef fmProFldDef = new FormFieldDef(); 
fmProFldDef.Key = fldProId; 
fmProFldDef.Retrieve(); 
string fldProName = (string)fmProFldDef.GetProperty("FieldName"); 
string fldProType = (string)fmProFldDef.GetProperty("FieldType"); 

선 구체적 라인 (4) (hTxtBox.Text = ...)) :

if (fldProType.ToLower() == "textbox") 
{ 
    Label hTxtBox = (Label)findControl(fldProName); 
    hTxtBox.Text = fldProValue; 
} 

모든 데이터는 데이터베이스에서 올바르게 수집되지만 레이블은 엉망이됩니다. 어떤 아이디어?

답변

2

findControl이 값을 반환하고 있습니까?

hTxtBox.Text는 NullReferenceException을 던질 수있는 집합에 대한 계산을 수행하는 속성입니까?

0

fmProFldDef의 FieldName 속성이 엉성한 것 같습니다. hTxtBox의 클라이언트 ID가 있는지 확인 했습니까? 이것은 "필드 명"은 (따라서이 라인이 널, 널 (NULL)이 검색에 사용되는, 리턴)

string fldProName = (string)fmProFldDef.GetProperty("FieldName"); 

기존없는 결과가 될 수있다

Label hTxtBox = (Label)findControl(fldProName); 

:

0

행은 널을 반환 또는 FieldName 내의 텍스트가 양식 필드를 나타내지 않습니다.

2

findControl이 null 값을 반환합니다. 특정 Label이 현재 페이지의 직접적인 하위 요소가 아닐 수 있습니다. 즉, 컨트롤의 실제 이름이 적용된 이름과 다른 경우 (따라서 찾을 수없는 경우) UpdatePanel 또는 다른 컨트롤 내부에있을 수 있습니다. . 예를 들어 이름이 "이름"인 경우 실제 이름은 페이지의 다른 컨트롤 안에 중첩되어 있으므로 ctl0 $ content $ name이 될 수 있습니다.

당신은 더 나은 대답을 줄 수있는 상황에 대한 충분한 정보를 제공하지 않습니다.

0

FindControl에서 텍스트 상자를 볼 수 없거나 데이터 바인딩 된 컨트롤 (예 : ListView, FormView 등)에 텍스트 상자가 표시되지 않을 수 있습니다.

관련 문제