2009-06-09 4 views
2

데이터 바인딩 FormView 안에 TabContainer가 있습니다 (예 : 클라이언트 바이오 데이터, 건강 기록, 재정 정보 ...). 업데이트 및 삽입 formView 작동하지 않습니다 (NULL 값을 데이터베이스에 게시) - FormView 탭 컨테이너의 탭 패널 안에 TextBoxes 찾을 수 없습니다 같아요. formview 안의 AJAX Tabcontainer 값을 삽입하지 않음

포럼의 일부

은 "하는 INamingContainer"의 때문에 (디자인에 의해)있는 TabContainer의 구현, 그리고 해킹이 "하는 INamingContainer를있는 TabContainer의 소스 코드 (아약스 CTL 툴킷의 소스 코드)를 장악하고 제거하는 말 "그것으로부터의 인터페이스. .. 나의 취향에 너무 복잡하게하게된다. 나는 다소 잃어버린다.

글쎄요, 직접 해결할 수있는 좋은 방법이 있습니까? 나는 툴킷이이 기본 functionnality를 구현하는 데 실패했음을보고 놀랐다. 대부분의 개발자가 formview를 사용하여 주문 정보 (탭 컨트롤)를 개발하는 것은 일반적인 필요 사항이다. 사전에

감사합니다, Jeewai

답변

2

내 자신의 스레드를 응답 ... 나는 asp.net 포럼에서 내부의 멋진했고, 여기에 솔루션을 게시하기로 결정 : 저를 도와 설명을 재현 :

희망 사항은 동일한 문제가 발생할 수있는 다른 사용자에게 몇 가지 질문을 제시합니다.

최저

, JY

인용문 안녕 JY

,

짧은 대답은 바인딩 문이 컴파일 될 때, 삽입/업데이트에 대한 값을 추출하는 몇 가지 제한이 있다는 것입니다. FormView 내의 컨트롤이 다른 명명 컨테이너 (TabContainer와 TabPanel이 모두 명명 컨테이너 임) 내에 있으면 컴파일러는 TextBox에서 값을 추출하는 방법을 해결할 수 없습니다. 이 블로그에 대한 자세한 내용은 http://www.aarongoldenthal.com/post/2009/03/15/ASPNET-Databinding-Bind()-Method-Dissected.aspx입니다.

이 해결하기 위해 수동으로 값을 추출해야합니다, 뭔가 같은 :

보호 무효 FormView1_ItemUpdating (개체를 보낸 사람, FormViewUpdateEventArgs 전자) { //하는 컨트롤에 대한 참조를 가져옵니다 텍스트 상자 LastNameTextBox = FormControl.FindControl ("TabContainer1"). FindControl ("TabPanel1"). FindControl ("LastNameTextBox")을 TextBox로 사용합니다.

// Set update parameters in datasource 
ObjectDataSource1.UpdateParameters["LastName"].DefaultValue = LastNameTextBox.Text; 

}

의 FindControl은 현재 명명 컨테이너를 검색하기 때문에, 당신은 텍스트 상자에 도착하는 각 명명 컨테이너 (FormView,있는 TabContainer 및 탭 패널)을 통해 발굴해야합니다.

희망이 있습니다.

아론

인용문

관련 문제