当Window移动Ext.net 2.5.1时,Panel in Window的编辑器没有正确移动

时间:2014-04-29 17:43:37

标签: extjs ext.net

我几乎从Ext.net网站上的EditorPanel示例中复制了示例代码。除了标签之外,我把它放在一个窗口里面。

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="News.ascx.cs" Inherits="QMSExt2.UserControls.News" %>
<ext:Window runat="server" ID="wNews" Modal="false" Title="News" Hidden="false"
    Width="550" Height="400" BodyStyle="background-color: #fff;" Padding="5"
    Collapsible="true" Icon="PageSave" Frame="true" MinHeight="100" MaxHeight="600"
    AutoScroll="True" AutoRender="true">
    <Items>
        <ext:Panel runat="server" Title="Editor Panel">
            <Items>
                <ext:Panel
                    ID="Panel1"
                    runat="server"
                    Width="610"
                    Height="300"
                    Html="Content"
                    BodyPadding="6"
                    Title="Editor panel" Layout="Anchor">
                    <TopBar>
                        <ext:Toolbar runat="server">
                            <Items>
                                <ext:Button
                                    ID="Button1"
                                    runat="server"
                                    Text="Edit"
                                    Icon="Pencil">
                                    <Listeners>
                                        <Click Handler="
                                            this.setDisabled(true);
                                            #{Button2}.setDisabled(false);
                                            #{PanelEditor}.startEdit(#{Panel1}.getBody());
                                        " />
                                    </Listeners>
                                </ext:Button>
                                <ext:Button
                                    ID="Button2"
                                    runat="server"
                                    Text="Save"
                                    Icon="Disk"
                                    Disabled="true">
                                    <Listeners>
                                        <Click Handler="
                                            this.setDisabled(true);
                                            #{Button1}.setDisabled(false);
                                            #{PanelEditor}.completeEdit();
                                        " />
                                    </Listeners>
                                </ext:Button>
                            </Items>
                        </ext:Toolbar>
                    </TopBar>
                </ext:Panel>
                <ext:Editor
                            ID="PanelEditor"
                            runat="server"
                            HtmlDecode="true"
                            UseHtml="true"
                            AutoSize="true"
                            Alignment="tl"
                            AllowBlur="false"
                            Shadow="False">
                            <AutoSizeConfig Width="BoundEl" Height="BoundEl" />
                            <Field>
                                <ext:HtmlEditor ID="HtmlEditor1" runat="server" />
                            </Field>
                            <Listeners>
                                <StartEdit Handler="
                            this.field.iframeEl.setHeight(this.field.getHeight() - this.field.getToolbar().getHeight() - 4); 
                            this.field.textareaEl.setHeight(this.field.getHeight() - this.field.getToolbar().getHeight() - 4);"
                                    Delay="10" />
                            </Listeners>
                        </ext:Editor>
            </Items>
        </ext:Panel>
    </Items>
</ext:Window>

我单击按钮进行编辑,然后显示编辑器。 enter image description here

我向上移动窗口并离开,这发生了 enter image description here

我将它移向浏览器窗口的左上角,这就是结果 enter image description here

控件直接加载到页面的表单标记内

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="QMSExt2.Default2" %>
<%@ Register Src="~/UserControls/News.ascx" TagPrefix="uc1" TagName="News" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ext:ResourceManager ID="rmMaster" runat="server" />
        <uc1:News runat="server" id="wNews" />
    </div>
    </form>
</body>
</html>

我希望能与其他所有事情一起移动......

1 个答案:

答案 0 :(得分:0)

一个Window有一个Move事件。它在移动窗口后触发。您可以收听该事件并重新定位编辑器。

或简短的解决方案 - 完成并重新开始编辑。

<Move Handler="if (#{PanelEditor}.editing) {
               #{PanelEditor}.completeEdit();
               #{PanelEditor}.startEdit(#{Panel1}.getBody());
           }" 
      Delay ="1" />