2009-06-12 5 views
0

이것은 다소 이상합니다. 기본적으로 ASP.NET 동적 데이터를 사용하여 양식을 만들고 있는데, 이는 여러 사용자 정의 필드 템플릿을 활용할 것입니다.잘못된 시간에 동적 컨트롤로드 중입니까?

방금 ​​FormView에 다른 필드를 추가했습니다.이 필드는 자체 사용자 지정 서식 파일이며 양식은 명백한 이유없이 해당 컨트롤을 두 번로드합니다. 나쁘지만 아직 처음으로 템플릿을로드 할 때 행이 준비되지 않았고 오류 메시지가 나타납니다.

Eval(), XPath() 및 Bind()와 같은 데이터 바인딩 방법은 데이터 바인딩 컨트롤

자식 객체를 얻기 위해 나는 LinqDataSource OnSelected 이벤트에 행 변수에 접근하고있어의 맥락 ... 이상한 부분에 대한 지금

: 나는 필드 약간의 순서를 변경하는 경우 문제를 일으키는 원인이 더 이상 두 번로드되지 않습니다.

의견이 있으십니까?

EDIT : 첫 번째로드에서 (행을 사용할 때 예외가 발생하는 경우) Page_Load가 호출되지만 두 번째 호출은 발생하지 않습니다. 그게 도움이된다면 ...

지금 당장은 예외를 잡아서 무시하면서 관리하지만, 실제 원인을 찾지 못하면 일이 깨질 것이라고 조금은 걱정합니다.

EDIT 2 : FindControl을 재귀 적으로 사용하여 페이지의 다른 컨트롤을 찾는 문제를 추적했습니다. 분명히 FindControl은 페이지 수명주기 이벤트 (적어도 page_load까지)를 발생시킬 수 있습니다 ... 그리고 이것은 페이지가 "로드되어야"하기 전에 발생하여 동적 데이터 인 "stuff"가 아직 준비되지 않았습니다.

+0

제가 생각하기에, 당신은 페이지에 formview가 있고 LinviewDatasource에 formview 바인드가 있습니다. formview에 채우기를 원하는 몇 가지 사용자 정의/추가 필드가 있습니다. 레코드를 저장/업데이트하려면 다음을 수행해야합니다. custom/additinal 필드 값 ????? –

+0

코드를 보여줄 수 있습니까? 어떻게 사용자 정의 템플릿을 추가 할 수 있습니까? –

+0

기본 페이지에 FormView가 있고 동적 데이터 템플릿에는 자체 LinqDataSource가있는 FormView가 포함되어 있습니다. 나는 직접 사용자 지정 템플릿을 추가하지는 않지만 ASP.NET Dynamic Data 기능에 의해 추가되고 있습니다 ... 나는 메타 데이터 클래스에 UIHint를 설정하고 있습니다 ... 코드는 게시하기가 복잡하지만 아마 나중에 나중에 할 수 있습니다. – CodeRedick

답변

0

Page_Load에있는 어떤 내용이 아니며, OnSelected으로 설정되어 있습니까? 행 개체와 같은 것. OnSelected은 다시 게시 이벤트이며 Page_Load 이후에 발생합니다. 행이 준비되지 않았을 때 예외가 발생할 수 있다고 생각할 수있는 유일한 방법입니다.

+0

아니, 아무것도 사실 Page_Load ...에서 수행되고있다 나는 단지 거기에 중단 점을 설정하고 무슨 일이 일어나고 있는지 볼 수있는 기능을했다.게다가 Row 객체는 동적 인 데이터 어딘가에서 생성됩니다. 왜냐하면 FieldTemplate은 FieldTemplate이 의존하기 때문에 FieldTemplate을로드하기 전에 생성되기 때문에 코드 내 어디에도 없습니다. – CodeRedick

0

모든 것이 주석 처리되거나 컨트롤이 더 이상 두 번로드되지 않을 때까지 코드에서 주석 달기를 시작하십시오.

아직 수행 중이라면 컨트롤 자체의 숨김 해제를 시작하십시오. 결국 실제 문제가 발생합니다.

관련 문제