Frage

Der Versuch, RadDock (öffnen / schließen sie) zu aktualisieren, indem es in Update aber kein Glück setzen .... ich die folgende Antwort bekommen.

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

: false, "Resizable": false, "Geschlossen": false, "Breite": "300px", "Höhe": null, "expandedHeight": 0, "Index": - 1} . |

Hier ist der Code:

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

-Code hinter:

    protected void lbtnUpdate_Click(object sender, EventArgs e)
{

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

Was bin ich falsch hier?

War es hilfreich?

Lösung

UPDATE: Sie sind nicht etwas falsch in Ihrem Code zu tun. Ich war in der Lage, dieses Problem zu duplizieren beiden Updates und RadAjaxManager verwenden. Nach Telerik Unterstützung, ist dies eine „Einschränkung“ in der RadDock Kontrolle. Mehr wie ein Fehler in meiner Meinung nach.

Hier ist, was er sagt, in ihrem Support-Seite Forum: Non-dockt Docks geklont und ungültige JSON primitive

  

Die RadDock Steuerung ist kein Standard   Kontrolle und es gibt einige Einschränkungen   wenn es über Ajax aktualisiert. Wenn du   wollen eine RadDock über Ajax bearbeiten Sie   aktualisieren sollten alle RadDockZones und alle   RadDocks sollte angedockt werden.

     

Der Fehler, den Sie erleben, ist aufgrund   dass Sie ein schwebendes RadDock aktualisieren   mit AJAX. Beim Ziehen des Docks Sie   bewegen sie außerhalb des Update-Panel und   dies bewirkt, dass AJAX funktioniert nicht richtig   wie es versucht, das Dock neu an   der Ort, es vorher befand.   Auf diese Weise zwei Docks mit der gleichen ID   Auf der Seite erscheinen und dies führt zu   eine Ausnahme. Dies ist ein häufiges Problem   für alle Kontrollen, die bewegt werden konnte   im DOM.

Ich war in der Lage, um Ihren Code Arbeit zu machen, indem die RadDock in einem RadDockZone Einwickeln und die DockMode Eigenschaft auf „Angedockt“. Wenn ich aber das Dock aus der Zone ziehen, lassen Sie es schwimmend und klicken Sie auf die Schaltfläche „Aktualisieren“, erscheint der Fehler auf.

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

Andere Tipps

Ich habe ein paar RadDocks in einem RadDockLayout schwimmen. Ajax funktioniert, wenn ich die RadDock aktualisieren, die RadDockLayout oder das Hauptfeld, das das RadDockLayout durch das RadAjaxManager Objekt umschließt.

Beispiel:

<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
    <UpdatedControls>
        <telerik:AjaxUpdatedControl ControlID="mainPanel" />
    </UpdatedControls>
</telerik:AjaxSetting>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top