항목이 동적으로 추가 된 후 Radpanelbar 컨트롤이 사라집니다
문제
Telerik Radpanelbar 컨트롤에 대한 질문이 있습니다.
예를 들어 양식에 대한 Radpanelbar 컨트롤이 있습니다.
<telerik:RadPanelBar ID="testPanelBar" runat="server">
</telerik:RadPanelBar>
런타임 에이 Radpanelbar에 새 항목을 추가하는 버튼 :
RadPanelItem newParentItem = new RadPanelItem();
RadPanelItem newChildItem = new RadPanelItem();
newChildItem.Controls.Add(new RadTextBox());
newChildItem.Text = "wazzap";
newParentItem.Items.Add(newChildItem);
languagesPanelBar.Items.Add(newParentItem);
버튼을 클릭하면 모든 어린이 컨트롤이 포함 된 새로운 Radpanelitem이 추가됩니다 (이 경우 Child 항목의 RadtextBox입니다).
버튼이 두 번째로 클릭되면 모든 컨트롤과 함께 두 번째 Radpanelitem이 추가되지만 이번에는 Radtexbox 컨트롤이 첫 번째 Radpanelitem에서 사라졌습니다.
버튼을 세 번째로 클릭하면 모든 컨트롤이 추가되었지만 RadtextBox는 1st 및 2nd 항목에서 분리됩니다.
아이템을 동적으로 추가 할 때 뭔가 잘못하고 있습니까?
감사합니다 !
해결책
이는 Postback 후 동적으로 생성 된 다른 컨트롤에 추가 된 동적으로 생성 된 컨트롤이 손실되기 때문에 발생합니다. 모든 페이지로드에서 재현해야합니다. 내가 아는 한,이 문제에 대한 해결 방법은 없습니다. page_load try controls.add (new textbox ())에서 페이지 클래스로 쉽게 재현 할 수 있습니다. 그런 다음 Postback 후에 동일한 코드가 새 (두 번째) 텍스트 상자를 생성하지 않지만 나중에 다시 만들어집니다.
모든 패널 바 항목 (동적으로 생성 된 항목조차도)은 클라이언트에서 직렬화되며 포스트 백이 서버에서 재현됩니다. 그리고 이것이 그들이 잃어버린 이유입니다. 그러나 Radpanelitem 대상의 아동 제어에는 동일한 것이 적용되지 않습니다.