Pregunta

Intento actualizar RadDock (abrirlo / cerrarlo) poniéndolo en UpdatePanel, sin embargo, no tuve suerte ... Recibo la siguiente respuesta.

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

: false, "Resizable": false, "Closed": false, "Width": "300px", "Height": null, "ExpandedHeight": 0, "Index": 1} . |

Aquí está el código:

<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>

Código detrás:

    protected void lbtnUpdate_Click(object sender, EventArgs e)
{

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

¿Qué estoy haciendo mal aquí?

¿Fue útil?

Solución

ACTUALIZACIÓN: no estás haciendo nada incorrecto en tu código. Pude duplicar este problema utilizando UpdatePanel y RadAjaxManager. Según el soporte de Telerik, esta es una "limitación". en el control RadDock. Más como un error en mi opinión.

Esto es lo que dice en su Foro de la página de soporte: Docks no acoplados clonados más primitiva JSON no válida

  

El control RadDock no es un estándar   control y hay algunas limitaciones   cuando se actualiza a través de ajax. Si tu   desea actualizar un RadDock a través de ajax usted   debe actualizar todos los RadDockZones y todos   RadDocks debe estar acoplado.

     

El error que experimenta se debe a   que actualice un RadDock flotante   con AJAX Al arrastrar el muelle te   moverlo fuera del panel de actualización y   esto hace que AJAX no funcione correctamente   ya que intenta recrear el muelle en   el lugar en el que se encontraba anteriormente.   De esta forma dos muelles con la misma id.   aparecer en la página y esto lleva a   una excepción. Este es un problema común   para todos los controles que se pueden mover   en el DOM.

Pude hacer que tu código funcionara envolviendo RadDock dentro de RadDockZone y configurando la propiedad DockMode en "Docked". Sin embargo, si arrastro el dock fuera de la zona, lo dejo flotando y hago clic en " Actualizar " botón, el error vuelve a aparecer.

<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>

Otros consejos

Tengo un par de RadDocks flotando dentro de un RadDockLayout. Ajax funciona si actualizo RadDock, RadDockLayout o el panel principal que envuelve RadDockLayout a través del objeto RadAjaxManager.

Ej:

<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
    <UpdatedControls>
        <telerik:AjaxUpdatedControl ControlID="mainPanel" />
    </UpdatedControls>
</telerik:AjaxSetting>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top