我想开始使用Ext.Net桌面(我将其用作其他应用程序的“普通页面”)。
我想知道从数据库数据初始化桌面的最佳方法。 我的实际方法是: 1.从没有任何模块的“最小”桌面页面(开始菜单ecc ...)开始; 2.从数据库中读取数据(基于相同的参数)并创建动态模块(我认为使用DesktopModuleProxy)whit userc控件(ex i save user / title / etc ... of usercontrol in database); 3.创建usercontrol并在桌面中呈现它
我从这个例子开始:http://examples.ext.net/#/Desktop/Introduction/Overview/
方法AddNewModule()仅在有提交(ex与启动器)时有效,但它不能从Page_Load事件起作用,我有这个javascript错误:
"Cannot read property 'length' of undefined" in ext.axd:93
也许我使用了错误的生命周期页面?
最后也许我使用webform而不是usercontrol,但我有相同的情况,我必须使用usercontrol ......
谢谢!
.aspx FILE
<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错误: 未捕获的TypeError:无法读取未定义的属性'app'Default.aspx:31 未捕获的TypeError:无法读取未定义的ext.axd:93
的属性“length”这是我各种测试的“最后一个版本”。如果我通过按钮调用相同的方法“loadTest”(如原始示例),它的工作原理。用户控件只有一个带有日期时间的标签。
谢谢!
答案 0 :(得分:0)
您可以在服务器上使用Ext.onReady和ext:ResourcePlaceHolder与DirectMethod,如下所示:
<ext:ResourcePlaceHolder runat="server" Mode="Script" />
<script type="text/javascript">
Ext.onReady(function () {
App.direct.YourDirectMethod();
});
</script>