Jun 20, 2012, 4:18 PM
How to load dynamic user controls on desktop shortcut?
There are a lot of user controls (.ascx) in my App so including all of them to desktop as https://examples2.ext.net/#/Desktop/...tion/Overview/ mentioned is too low.
I have Desktop.aspx:
<%@ Register Src="modules/UserWin.ascx" TagPrefix="mod" TagName="UserWin" %>
<mod:UserWin runat="server" id="UserWinCtrl"/>
UserWin.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserWin.ascx.cs" Inherits="modules_UserWin" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<ext:DesktopModuleProxy ID="DesktopModuleProxy1" runat="server">
<Module ModuleID="grid-win">
<Shortcut Name="Users" IconCls="x-im-shortcut" SortIndex="1">
</Shortcut>
<Launcher Text="Users" Icon="User" />
<Window>
<ext:Window runat="server" ID="userWin" Icon="User" Width="740" Height="480" AnimCollapse="false"
ConstrainHeader="true" Layout="BorderLayout" Title="Manage User">
<DirectEvents>
<BeforeShow OnEvent="OnLoad" />
</DirectEvents>
<TopBar>
<ext:Toolbar ID="toolbarUserWin" runat="server">
<Items>
<ext:TriggerField ID="txtUserSearch" runat="server" Width="200">
<Triggers>
<ext:FieldTrigger Icon="Clear" Qtip="" />
<ext:FieldTrigger Icon="Search" />
</Triggers>
<Listeners>
<TriggerClick Handler="BCCVDA.UserWin.BindData(index);" />
</Listeners>
<%-- <TriggerClick Handler="Ext.Msg.alert('Message', 'TriggerIndex: ' + index + '<br /><br />Text: ' + this.getValue());" />--%>
<%-- <DirectEvents>
<TriggerClick OnEvent="BindData"></TriggerClick>
</DirectEvents>--%>
</ext:TriggerField>
<ext:ToolbarSeparator ID="ToolbarSeparator3" runat="server" />
<ext:Button ID="btnAdd" runat="server" Text="Add" Icon="Add" ToolTip="Add a new user">
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server" />
<ext:Button ID="Button2" runat="server" Text="Options" Icon="Plugin">
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator2" runat="server" />
<ext:Button ID="Button3" runat="server" Text="Remove Something" ToolTip="Remove the selected item"
Icon="Decline">
<QTipCfg Text="Remove the selected user" />
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<Items>
<ext:GridPanel ID="gridUser" runat="server" Title="User List" Width="700" Height="310"
Region="Center">
<Store>
<ext:Store ID="Store1" runat="server" OnReadData="OnReadData" PageSize="10" RemoteSort="true">
<AutoLoadParams>
<ext:Parameter Name="start" Value="0" Mode="Raw" />
<ext:Parameter Name="limit" Value="10" Mode="Raw" />
</AutoLoadParams>
<Proxy>
<ext:PageProxy />
</Proxy>
<Model>
<ext:Model ID="Model1" runat="server" IDProperty="UserId">
<Fields>
<ext:ModelField Name="FullName" />
<ext:ModelField Name="UserName" />
<ext:ModelField Name="UserId" Type="Int" />
<ext:ModelField Name="Email" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ID="Column1" runat="server" Text="Full Name" DataIndex="FullName" Width="250" />
<ext:Column ID="Column2" runat="server" Text="User Name" DataIndex="UserName" />
<ext:Column ID="Column3" runat="server" Text="User Id" DataIndex="UserId" />
<ext:Column ID="Column4" runat="server" Text="Email" DataIndex="Email" Width="200" />
<%-- <ext:Column ID="Column2" runat="server" Text="Price" Width="75" DataIndex="price">
<Renderer Format="UsMoney" />
</ext:Column>
<ext:Column ID="Column3" runat="server" Text="Change" Width="75" DataIndex="change">
<Renderer Fn="change" />
</ext:Column>
<ext:Column ID="Column4" runat="server" Text="Change" Width="75" DataIndex="pctChange">
<Renderer Fn="pctChange" />
</ext:Column>
<ext:DateColumn ID="DateColumn1" runat="server" Text="Last Updated" Width="85" DataIndex="lastChange"
Format="H:mm:ss" />--%>
</Columns>
</ColumnModel>
<Features>
<ext:GridFilters ID="GridFilters1" runat="server">
<Filters>
<ext:StringFilter DataIndex="FullName" />
<ext:StringFilter DataIndex="UserName" />
<ext:NumericFilter DataIndex="UserId" />
<ext:StringFilter DataIndex="Email" />
</Filters>
</ext:GridFilters>
</Features>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single">
<DirectEvents>
<Select OnEvent="RowSelect">
<EventMask ShowMask="true" Target="CustomTarget" CustomTarget="#{formUser}" />
<ExtraParams>
<%--or can use params[2].id as value--%>
<ext:Parameter Name="UserId" Value="record.getId()" Mode="Raw" />
</ExtraParams>
</Select>
</DirectEvents>
</ext:RowSelectionModel>
</SelectionModel>
<View>
<ext:GridView ID="GridView1" runat="server" StripeRows="true">
</ext:GridView>
</View>
<BottomBar>
<ext:PagingToolbar ID="PagingToolbar1" runat="server">
<Items>
<ext:Label ID="Label1" runat="server" Text="Page size:" />
<ext:ToolbarSpacer ID="ToolbarSpacer1" runat="server" Width="10" />
<ext:ComboBox ID="cboPageSize" runat="server" Width="80">
<Items>
<ext:ListItem Text="10" />
<ext:ListItem Text="20" />
<ext:ListItem Text="50" />
<ext:ListItem Text="100" />
<ext:ListItem Text="200" />
<ext:ListItem Text="500" />
</Items>
<SelectedItems>
<ext:ListItem Value="10" />
</SelectedItems>
<Listeners>
<Select Handler="#{gridUser}.store.pageSize = parseInt(this.getValue(), 10); #{gridUser}.store.load();" />
</Listeners>
</ext:ComboBox>
</Items>
<Plugins>
<ext:ProgressBarPager ID="ProgressBarPager1" runat="server" />
</Plugins>
</ext:PagingToolbar>
</BottomBar>
</ext:GridPanel>
<ext:FormPanel ID="formUser" runat="server" Region="East" Split="true" Layout="columnLayout"
Title="User Details" Width="600" Icon="User" Collapsible="true" DefaultAnchor="100%">
<Items>
<ext:TabPanel ID="TabPanel1" runat="server" ColumnWidth="1" Border="false" ActiveTabIndex="0"
BodyStyle="padding:5px;">
<Items>
<ext:Panel ID="Panel1" runat="server" Title="General Info" Border="false" ActiveIndex="0"
ColumnWidth="1" Layout="ColumnLayout" DefaultBorder="false" DefaultPadding="0">
<Items>
<ext:Panel ID="Panel2" runat="server" Border="false" Header="false" ColumnWidth="0.5"
Layout="Form" LabelAlign="Top">
<Defaults>
<ext:Parameter Name="AllowBlank" Value="false" Mode="Raw" />
<ext:Parameter Name="MsgTarget" Value="side" />
</Defaults>
<Items>
<ext:TextField ID="txtUserId" runat="server" FieldLabel="User Id" ReadOnly="true" />
<ext:TextField ID="txtFirstName" runat="server" FieldLabel="First Name" />
<ext:TextField ID="txtFullName" runat="server" FieldLabel="Full Name" />
<ext:TextField ID="txtEmail" runat="server" FieldLabel="Email" />
<ext:TextField ID="txtWorkPhone" runat="server" FieldLabel="WorkPhone" />
<ext:TextField ID="txtHomePhone" runat="server" FieldLabel="HomePhone" />
</Items>
</ext:Panel>
<ext:Panel ID="Panel3" runat="server" Border="false" Layout="Form" ColumnWidth="0.5"
LabelAlign="Top">
<Defaults>
<ext:Parameter Name="AllowBlank" Value="false" Mode="Raw" />
<ext:Parameter Name="MsgTarget" Value="side" />
</Defaults>
<Items>
<ext:TextField ID="txtUserName" runat="server" FieldLabel="User Name" />
<ext:TextField ID="txtLastName" runat="server" FieldLabel="Last Name" />
<ext:TextField ID="txtAddress" runat="server" FieldLabel="Address" />
</Items>
</ext:Panel>
</Items>
</ext:Panel>
<ext:Panel ID="Panel4" runat="server" Title="Description" Border="false" ColumnWidth="1"
Layout="ColumnLayout" DefaultBorder="false" DefaultPadding="0">
<Items>
<ext:Panel ID="Panel5" runat="server" Border="false" Header="false" ColumnWidth="0.5"
Layout="Form" LabelAlign="Top">
<Defaults>
<ext:Parameter Name="AllowBlank" Value="false" Mode="Raw" />
<ext:Parameter Name="MsgTarget" Value="side" />
</Defaults>
<Items>
<ext:TextField ID="TextFieldww1" runat="server" FieldLabel="First Name" />
<ext:TextField ID="TextFieldww2" runat="server" FieldLabel="Company" />
</Items>
</ext:Panel>
</Items>
</ext:Panel>
</Items>
</ext:TabPanel>
</Items>
<Buttons>
<ext:Button ID="Button4" runat="server" Text="Save" Icon="Disk">
<Listeners>
<Click Handler="if (#{formUser}.getForm().isValid()) {Ext.Msg.alert('Submit', 'Saved!');}else{Ext.Msg.show({icon: Ext.MessageBox.ERROR, msg: 'FormPanel is incorrect', buttons:Ext.Msg.OK});}" />
</Listeners>
</ext:Button>
</Buttons>
</ext:FormPanel>
</Items>
</ext:Window>
</Window>
</Module>
</ext:DesktopModuleProxy>
...............................
When launch Desktop.aspx then UserWin.ascx will be loaded, too. How can I prevent this? I just want to load UserWin.ascx in a window when clicking on shortcut.
Thanks.
I have Desktop.aspx:
<%@ Register Src="modules/UserWin.ascx" TagPrefix="mod" TagName="UserWin" %>
<mod:UserWin runat="server" id="UserWinCtrl"/>
UserWin.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserWin.ascx.cs" Inherits="modules_UserWin" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<ext:DesktopModuleProxy ID="DesktopModuleProxy1" runat="server">
<Module ModuleID="grid-win">
<Shortcut Name="Users" IconCls="x-im-shortcut" SortIndex="1">
</Shortcut>
<Launcher Text="Users" Icon="User" />
<Window>
<ext:Window runat="server" ID="userWin" Icon="User" Width="740" Height="480" AnimCollapse="false"
ConstrainHeader="true" Layout="BorderLayout" Title="Manage User">
<DirectEvents>
<BeforeShow OnEvent="OnLoad" />
</DirectEvents>
<TopBar>
<ext:Toolbar ID="toolbarUserWin" runat="server">
<Items>
<ext:TriggerField ID="txtUserSearch" runat="server" Width="200">
<Triggers>
<ext:FieldTrigger Icon="Clear" Qtip="" />
<ext:FieldTrigger Icon="Search" />
</Triggers>
<Listeners>
<TriggerClick Handler="BCCVDA.UserWin.BindData(index);" />
</Listeners>
<%-- <TriggerClick Handler="Ext.Msg.alert('Message', 'TriggerIndex: ' + index + '<br /><br />Text: ' + this.getValue());" />--%>
<%-- <DirectEvents>
<TriggerClick OnEvent="BindData"></TriggerClick>
</DirectEvents>--%>
</ext:TriggerField>
<ext:ToolbarSeparator ID="ToolbarSeparator3" runat="server" />
<ext:Button ID="btnAdd" runat="server" Text="Add" Icon="Add" ToolTip="Add a new user">
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server" />
<ext:Button ID="Button2" runat="server" Text="Options" Icon="Plugin">
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator2" runat="server" />
<ext:Button ID="Button3" runat="server" Text="Remove Something" ToolTip="Remove the selected item"
Icon="Decline">
<QTipCfg Text="Remove the selected user" />
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<Items>
<ext:GridPanel ID="gridUser" runat="server" Title="User List" Width="700" Height="310"
Region="Center">
<Store>
<ext:Store ID="Store1" runat="server" OnReadData="OnReadData" PageSize="10" RemoteSort="true">
<AutoLoadParams>
<ext:Parameter Name="start" Value="0" Mode="Raw" />
<ext:Parameter Name="limit" Value="10" Mode="Raw" />
</AutoLoadParams>
<Proxy>
<ext:PageProxy />
</Proxy>
<Model>
<ext:Model ID="Model1" runat="server" IDProperty="UserId">
<Fields>
<ext:ModelField Name="FullName" />
<ext:ModelField Name="UserName" />
<ext:ModelField Name="UserId" Type="Int" />
<ext:ModelField Name="Email" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ID="Column1" runat="server" Text="Full Name" DataIndex="FullName" Width="250" />
<ext:Column ID="Column2" runat="server" Text="User Name" DataIndex="UserName" />
<ext:Column ID="Column3" runat="server" Text="User Id" DataIndex="UserId" />
<ext:Column ID="Column4" runat="server" Text="Email" DataIndex="Email" Width="200" />
<%-- <ext:Column ID="Column2" runat="server" Text="Price" Width="75" DataIndex="price">
<Renderer Format="UsMoney" />
</ext:Column>
<ext:Column ID="Column3" runat="server" Text="Change" Width="75" DataIndex="change">
<Renderer Fn="change" />
</ext:Column>
<ext:Column ID="Column4" runat="server" Text="Change" Width="75" DataIndex="pctChange">
<Renderer Fn="pctChange" />
</ext:Column>
<ext:DateColumn ID="DateColumn1" runat="server" Text="Last Updated" Width="85" DataIndex="lastChange"
Format="H:mm:ss" />--%>
</Columns>
</ColumnModel>
<Features>
<ext:GridFilters ID="GridFilters1" runat="server">
<Filters>
<ext:StringFilter DataIndex="FullName" />
<ext:StringFilter DataIndex="UserName" />
<ext:NumericFilter DataIndex="UserId" />
<ext:StringFilter DataIndex="Email" />
</Filters>
</ext:GridFilters>
</Features>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" Mode="Single">
<DirectEvents>
<Select OnEvent="RowSelect">
<EventMask ShowMask="true" Target="CustomTarget" CustomTarget="#{formUser}" />
<ExtraParams>
<%--or can use params[2].id as value--%>
<ext:Parameter Name="UserId" Value="record.getId()" Mode="Raw" />
</ExtraParams>
</Select>
</DirectEvents>
</ext:RowSelectionModel>
</SelectionModel>
<View>
<ext:GridView ID="GridView1" runat="server" StripeRows="true">
</ext:GridView>
</View>
<BottomBar>
<ext:PagingToolbar ID="PagingToolbar1" runat="server">
<Items>
<ext:Label ID="Label1" runat="server" Text="Page size:" />
<ext:ToolbarSpacer ID="ToolbarSpacer1" runat="server" Width="10" />
<ext:ComboBox ID="cboPageSize" runat="server" Width="80">
<Items>
<ext:ListItem Text="10" />
<ext:ListItem Text="20" />
<ext:ListItem Text="50" />
<ext:ListItem Text="100" />
<ext:ListItem Text="200" />
<ext:ListItem Text="500" />
</Items>
<SelectedItems>
<ext:ListItem Value="10" />
</SelectedItems>
<Listeners>
<Select Handler="#{gridUser}.store.pageSize = parseInt(this.getValue(), 10); #{gridUser}.store.load();" />
</Listeners>
</ext:ComboBox>
</Items>
<Plugins>
<ext:ProgressBarPager ID="ProgressBarPager1" runat="server" />
</Plugins>
</ext:PagingToolbar>
</BottomBar>
</ext:GridPanel>
<ext:FormPanel ID="formUser" runat="server" Region="East" Split="true" Layout="columnLayout"
Title="User Details" Width="600" Icon="User" Collapsible="true" DefaultAnchor="100%">
<Items>
<ext:TabPanel ID="TabPanel1" runat="server" ColumnWidth="1" Border="false" ActiveTabIndex="0"
BodyStyle="padding:5px;">
<Items>
<ext:Panel ID="Panel1" runat="server" Title="General Info" Border="false" ActiveIndex="0"
ColumnWidth="1" Layout="ColumnLayout" DefaultBorder="false" DefaultPadding="0">
<Items>
<ext:Panel ID="Panel2" runat="server" Border="false" Header="false" ColumnWidth="0.5"
Layout="Form" LabelAlign="Top">
<Defaults>
<ext:Parameter Name="AllowBlank" Value="false" Mode="Raw" />
<ext:Parameter Name="MsgTarget" Value="side" />
</Defaults>
<Items>
<ext:TextField ID="txtUserId" runat="server" FieldLabel="User Id" ReadOnly="true" />
<ext:TextField ID="txtFirstName" runat="server" FieldLabel="First Name" />
<ext:TextField ID="txtFullName" runat="server" FieldLabel="Full Name" />
<ext:TextField ID="txtEmail" runat="server" FieldLabel="Email" />
<ext:TextField ID="txtWorkPhone" runat="server" FieldLabel="WorkPhone" />
<ext:TextField ID="txtHomePhone" runat="server" FieldLabel="HomePhone" />
</Items>
</ext:Panel>
<ext:Panel ID="Panel3" runat="server" Border="false" Layout="Form" ColumnWidth="0.5"
LabelAlign="Top">
<Defaults>
<ext:Parameter Name="AllowBlank" Value="false" Mode="Raw" />
<ext:Parameter Name="MsgTarget" Value="side" />
</Defaults>
<Items>
<ext:TextField ID="txtUserName" runat="server" FieldLabel="User Name" />
<ext:TextField ID="txtLastName" runat="server" FieldLabel="Last Name" />
<ext:TextField ID="txtAddress" runat="server" FieldLabel="Address" />
</Items>
</ext:Panel>
</Items>
</ext:Panel>
<ext:Panel ID="Panel4" runat="server" Title="Description" Border="false" ColumnWidth="1"
Layout="ColumnLayout" DefaultBorder="false" DefaultPadding="0">
<Items>
<ext:Panel ID="Panel5" runat="server" Border="false" Header="false" ColumnWidth="0.5"
Layout="Form" LabelAlign="Top">
<Defaults>
<ext:Parameter Name="AllowBlank" Value="false" Mode="Raw" />
<ext:Parameter Name="MsgTarget" Value="side" />
</Defaults>
<Items>
<ext:TextField ID="TextFieldww1" runat="server" FieldLabel="First Name" />
<ext:TextField ID="TextFieldww2" runat="server" FieldLabel="Company" />
</Items>
</ext:Panel>
</Items>
</ext:Panel>
</Items>
</ext:TabPanel>
</Items>
<Buttons>
<ext:Button ID="Button4" runat="server" Text="Save" Icon="Disk">
<Listeners>
<Click Handler="if (#{formUser}.getForm().isValid()) {Ext.Msg.alert('Submit', 'Saved!');}else{Ext.Msg.show({icon: Ext.MessageBox.ERROR, msg: 'FormPanel is incorrect', buttons:Ext.Msg.OK});}" />
</Listeners>
</ext:Button>
</Buttons>
</ext:FormPanel>
</Items>
</ext:Window>
</Window>
</Module>
</ext:DesktopModuleProxy>
...............................
When launch Desktop.aspx then UserWin.ascx will be loaded, too. How can I prevent this? I just want to load UserWin.ascx in a window when clicking on shortcut.
Thanks.