2009-04-29 5 views
1

RadPock을 UpdatePanel에 넣음으로써 RadDock을 업데이트하려고 시도했지만 행운이 없습니다. 다음 응답이 표시됩니다.Telerik RadDock - ajax 업데이트가 JSON 오류를 반환합니다.

189|error|500|Invalid JSON primitive: {"Top":179,"Left":583,"DockZoneID":"","Collapsed":false,"Pinned" 

: 거짓, "크기 조정"거짓 "청산"거짓 "폭": "300 픽셀", "높이"널 (null) "ExpandedHeight": 0, "인덱스"- 1} .

<asp:UpdatePanel ID="upanelDock" runat="server"> 
    <ContentTemplate> 
     <telerik:RadDock ID="RadDock1" runat="server" Width="300px"> 
      <TitlebarTemplate> 
       <h2> 
        this is a dock</h2> 
      </TitlebarTemplate> 
      <ContentTemplate> 
       some content here 
       <br /> 
       some content here 
       <br /> 
       some content here 
       <br />    
      </ContentTemplate> 
     </telerik:RadDock> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="lbtnUpdate" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 
<asp:LinkButton ID="lbtnUpdate" runat="server" OnClick="lbtnUpdate_Click">update</asp:LinkButton> 

코드 뒤에 :

protected void lbtnUpdate_Click(object sender, EventArgs e) 
{ 

    if (this.RadDock1.Closed) 
     this.RadDock1.Closed = false; 
    else 
     this.RadDock1.Closed = true; 
} 

내가 잘못 여기서 뭐하는 거지 여기

코드인가?

답변

4

업데이트 : 코드에 아무런 문제가 없습니다. UpdatePanel과 RadAjaxManager를 사용하여이 문제를 복제 할 수있었습니다. Telerik 지원에 따르면, 이것은 RadDock 컨트롤의 "한계"입니다. 제 생각에는 버그와 비슷합니다.

여기에 그들의 지원 페이지 포럼에 말씀입니다 : Non-docked Docks cloned plus Invalid JSON primitive

RadDock 제어 표준 제어하지 않고이 아약스를 통해 업데이트되는 몇 가지 제한 이 있습니다. ajax를 통해 RadDock을 업데이트하려는 경우 은 모든 RadDockZones를 업데이트해야하며 개의 RadDock을 도킹해야합니다.

발생한 오류는 이므로 Floating RadDock 을 AJAX로 업데이트해야합니다. 도크를 드래그 할 때 을 업데이트 패널 외부로 옮기고 이 발생하면 AJAX가 제대로 작동하지 않습니다. 도크를 이전에 위치한 장소 에 다시 만들려고 시도합니다. 이런 식으로 동일한 ID를 가진 두 개의 도크 이 페이지에 나타나고 이는 으로 예외가됩니다. DOM에서 으로 이동할 수있는 모든 컨트롤에 대한 일반적인 문제는 입니다.

RadDockZone 안에 RadDock을 래핑하고 DockMode 속성을 "Docked"로 설정하여 코드 작업을 할 수있었습니다. 그러나 Dock을 영역 밖으로 드래그하여 부동 상태로두고 "업데이트"버튼을 클릭하면 오류가 다시 나타납니다.

<asp:UpdatePanel ID="upanelDock" runat="server"> 
    <ContentTemplate> 
     <telerik:RadDockZone runat="server"> 
     <telerik:RadDock ID="RadDock1" runat="server" Width="300px" 
                 DockMode="Docked"> 
      <TitlebarTemplate> 
       <h2> 
        this is a dock 
       </h2> 
      </TitlebarTemplate> 
      <ContentTemplate> 
       some content here 
       <br /> 
       some content here 
       <br /> 
       some content here 
       <br />    
      </ContentTemplate> 
     </telerik:RadDock> 
     </telerik:RadDockZone> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="lbtnUpdate" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 
<asp:LinkButton ID="lbtnUpdate" runat="server" 
      OnClick="lbtnUpdate_Click">update</asp:LinkButton> 
+0

은 내가 Telerik의 AjaxManager 함께 노력하고 동일한 응답을 가지고 생각합니다. –

+0

@ dev.e.loper - 업데이트 된 게시물을 읽어주십시오. RadDock을 RadZone 안에 랩 한 다음 고정되어있는 동안 만 작동한다는 것이 밝혀졌습니다. –

+0

이 질문에 대한 업데이트 된 답변을 읽어 보셨습니까? –

0

저는 RadDockLayout 내부에 몇 개의 RadDocks가 떠있었습니다. Ajax는 RadDock, RadDockLayout 또는 RadDockLayout을 RadAjaxManager 객체를 통해 래핑하는 기본 패널을 업데이트하면 작동합니다.

예 :

<telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> 
    <UpdatedControls> 
     <telerik:AjaxUpdatedControl ControlID="mainPanel" /> 
    </UpdatedControls> 
</telerik:AjaxSetting>