0

Ext.Netデスクトップの使用を開始したいです(他のアプリケーションの「通常のページ」として使用しています)。

データベースデータからデスクトップを初期化する最良の方法を知りたいです。私の実際のアプローチは次のとおりです。1.モジュールなしで「最小限の」デスクトップページ(スタートメニューなど)から始めます。2.データベースからデータを読み取り(同じパラメーターに基づいて)、動的モジュールを作成します(DesktopModuleProxyを使用すると思います)。3. ユーザー コントロールを作成し、デスクトップでレンダリングする

私はこの例から始めます: http://examples.ext.net/#/Desktop/Introduction/Overview/

メソッド AddNewModule() は、送信がある場合にのみ機能します (例: ランチャーを使用) が、Page_Load イベントからは機能せず、次の JavaScript エラーがあります:

"Cannot read property 'length' of undefined" in ext.axd:93

多分私は間違ったライフサイクルページを使用していますか?

最後に、ユーザーコントロールの代わりにウェブフォームを使用するかもしれませんが、ユーザーコントロールを使用する必要がある同じケースがあります...

ありがとう!

.aspx ファイル

<ext:Desktop ID="Desktop1" runat="server">            
        <StartMenu Title="Ext.Net Desktop" Icon="Application" Height="300">
            <ToolConfig>
                <ext:Toolbar ID="Toolbar1" runat="server" Width="100">
                    <Items>
                        <ext:Button ID="Button1" runat="server" Text="Settings" Icon="Cog" />
                        <ext:Button ID="Button2" runat="server" Text="Logout" Icon="Key">
                            <DirectEvents>
                                <Click OnEvent="Logout_Click">
                                    <EventMask ShowMask="true" Msg="Ciao..." MinDelay="1000" />
                                </Click>
                            </DirectEvents>
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </ToolConfig>
        </StartMenu>

        <TaskBar TrayWidth="100">
            <QuickStart>
                <ext:Toolbar ID="Toolbar2" runat="server">
                    <Items>
                        <ext:Button ID="Button3" runat="server" Handler="tile" Icon="ApplicationTileVertical">
                            <QTipCfg Text="Tile windows" />
                        </ext:Button>

                        <ext:Button ID="Button4" runat="server" Handler="cascade" Icon="ApplicationCascade">
                            <QTipCfg Text="Cascade windows" />
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </QuickStart>

            <Tray>
                <ext:Toolbar ID="Toolbar3" runat="server">
                    <Items>
                        <ext:ToolbarFill ID="ToolbarFill1" runat="server" />
                    </Items>
                </ext:Toolbar>
            </Tray>
        </TaskBar>
        <DirectEvents>
            <Ready OnEvent="loadTest"></Ready>

        </DirectEvents>

    </ext:Desktop>

.cs ファイル

    [DirectMethod]
    public void loadTest(object sender, DirectEventArgs e)
    {
            DesktopModuleProxy control =     Ext.Net.Utilities.ControlUtils.FindControl<Ext.Net.DesktopModuleProxy>    (this.LoadControl("/user/default.ascx"));
            control.RegisterModule();
    }

クロムによるエラー: Uncaught TypeError: 未定義の Default.aspx:31 のプロパティ 'app' を読み取れません Uncaught TypeError: 未定義の ext.axd:93 のプロパティ '長さ' を読み取ることができません

これらは私のさまざまなテストの「最終バージョン」です。ボタンで同じメソッド「loadTest」を呼び出すと(元の例のように)、機能します。ユーザー コントロールには、datetime のラベルが 1 つしかありません。

ありがとう!

4

1 に答える 1

0

次のように、Ext.onReady と ext:ResourcePlaceHolder をサーバー上の DirectMethod で使用できます。

<ext:ResourcePlaceHolder runat="server" Mode="Script" />
<script type="text/javascript">
    Ext.onReady(function () {
        App.direct.YourDirectMethod();
    });
</script>
于 2016-11-07T05:26:38.643 に答える