【发布时间】:2016-11-07 13:26:38
【问题描述】:
我想开始使用 Ext.Net 桌面(我将它用作其他应用程序的“普通页面”)。
我想知道从数据库数据中初始化桌面的最佳方法。 我的实际做法是: 1.从“最小”桌面页面(开始菜单ecc ...)开始,没有任何模块; 2.从数据库中读取数据(基于相同的参数)并创建动态模块(我认为使用DesktopModuleProxy)带有用户控件(例如,我将用户控件的路径/标题/等...保存在数据库中); 3. 创建用户控件并在桌面渲染
我从这个例子开始:http://examples.ext.net/#/Desktop/Introduction/Overview/
方法 AddNewModule() 仅在有提交时才有效(例如使用启动器),但它不适用于 Page_Load 事件,并且我有这个 javascript 错误:
"Cannot read property 'length' of undefined" in ext.axd:93
也许我使用了错误的生命周期页面?
最后也许我使用 webform 代替 usercontrol,但我有同样的情况,我必须使用 usercontrol...
谢谢!
.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();
}
chrome 出错: 未捕获的类型错误:无法读取未定义 Default.aspx:31 的属性“应用程序” 未捕获的类型错误:无法读取未定义的 ext.axd:93 的属性“长度”
这是我各种测试的“最新版本”。如果我通过按钮调用相同的方法“loadTest”(如原始示例)它可以工作。用户控件只有 1 个带有日期时间的标签。
谢谢!
【问题讨论】:
-
我认为您将不得不发布一个简化的 .aspx 代码示例来演示如何重现。我尝试了您在上面链接的示例,它似乎可以正常工作。
-
是的,这个例子当然很好用。也许我犯了一个错误,但我的问题有点不同。我想知道我的方法是否好,当开发人员想要创建网络桌面应用程序时是否有“最佳实践”可以遵循......