尝试通过将其置于UpdatePanel来更新RadDock(打开/关闭它)但是没有运气....我得到以下响应。

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

:假,"可调整":假,"关闭":假,"宽度":" 300像素","身高":空," 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;
}

我在这里做错了什么?

有帮助吗?

解决方案

更新:您的代码没有出错。我能够使用UpdatePanel和RadAjaxManager复制此问题。根据Telerik的支持,这是一个“限制”。在RadDock控件中。更像是我认为的错误。

以下是它们在支持页面论坛中所说的内容:克隆的非停靠码头加上无效的JSON原语

  

RadDock控件不是标准   控制并存在一些局限性   当它通过ajax更新时。如果你   想通过ajax更新RadDock   应该更新所有RadDockZones和所有   RadDocks应该停靠。

     

您遇到的错误是由于   您更新浮动RadDock   用AJAX。拖动你的时候   将它移到更新面板外面   这会导致AJAX无法正常工作   因为它试图重建码头   它以前所在的地方。   通过这种方式,两个码头具有相同的ID   出现在页面上,这导致   一个例外。这是一个常见问题   对于可以移动的所有控件   在DOM中。

我能够通过将RadDock包装在RadDockZone中并将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>

其他提示

我有一些RadDocks漂浮在RadDockLayout中。如果我更新RadDock,RadDockLayout或通过RadAjaxManager对象包装RadDockLayout的主面板,Ajax会起作用。

例如:

<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
    <UpdatedControls>
        <telerik:AjaxUpdatedControl ControlID="mainPanel" />
    </UpdatedControls>
</telerik:AjaxSetting>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top