File app.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="app.aspx.cs" Inherits="HelpDeskLayout.app" %>
<%@ Register assembly="Ext.Net" namespace="Ext.Net" tagprefix="ext" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<meta http-equiv="content-type" content="text/html" charset="utf-8" />
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" Theme="Gray" />
<ext:Viewport runat="server" Layout="Border">
<Items>
<ext:Panel runat="server" ID="panelAppHeader" Region="North" Height="50"
Html="<img src='img/LogoHelpDesk.png' />" BodyStyle="background-color: #dedddd;">
</ext:Panel>
<ext:TabPanel runat="server" ID="tabApp" Region="Center" >
<Items>
<ext:Panel runat="server" ID="panelAdministracja" Title="Administracja" Layout="FitLayout" >
<Items>
<ext:UserControlLoader runat="server" Path="Kontrolki/Administracja/PanelAdministracja.ascx"></ext:UserControlLoader>
</Items>
</ext:Panel>
</Items>
</ext:TabPanel>
</Items>
</ext:Viewport>
</body>
</html>
File PanelAdministracja.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PanelAdministracja.ascx.cs" Inherits="HelpDeskLayout.Kontrolki.Administracja.PanelAdministracja" %>
<ext:Panel runat="server" ID="panelUserAdministracja" Border="false">
<LayoutConfig>
<ext:HBoxLayoutConfig Align="Stretch" />
</LayoutConfig>
<TopBar >
<ext:Toolbar runat="server">
<Items>
<ext:SplitButton runat="server" Text="Szybkie działania"></ext:SplitButton>
</Items>
</ext:Toolbar>
</TopBar>
<Items>
<ext:Panel runat="server" BodyPadding="10" Border="false" Height="600" Width="250" >
<Items>
<ext:Panel runat="server" Title="Opcje" Layout="AccordionLayout" Height="400">
<Items>
<ext:Panel runat="server" Title="Helpdesk" BodyPadding="5" >
<Items>
<ext:ButtonGroup runat="server" Columns="1">
<LayoutConfig>
<ext:VBoxLayoutConfig Align="Stretch" />
</LayoutConfig>
<Items>
<ext:Button runat="server" Text="Stan" TextAlign="Left" ToggleGroup="Group1" Flex="1" OnDirectClick="btnStan_DirectClick">
<Listeners>
<Click Handler="function(){
this.toggle(true);
}"></Click>
</Listeners>
</ext:Button>
</Items>
</ext:ButtonGroup>
</Items>
</ext:Panel>
</Items>
</ext:Panel>
</Items>
</ext:Panel>
<ext:Panel runat="server" ID="panelAdministracjaKategoria" BodyPadding="10" Border="false" Layout="FitLayout" Flex="1">
</ext:Panel>
</Items>
</ext:Panel>
File PanelAdministracja.ascx.cs
public partial class PanelAdministracja : System.Web.UI.UserControl
{
UserControl currentUC;
private void LoadUserControl(string num,string nazwa, bool update = false)
{
if (update && currentUC != null)
{
Ext.Net.Utilities.ControlUtils.FindControls<AbstractComponent>(this.panelAdministracjaKategoria ).ForEach(c => {
if(!c.IsLazy)
{
c.Destroy();
}
});
this.panelAdministracjaKategoria.ContentControls.Clear();
}
currentUC = (UserControl)this.LoadControl(nazwa);
currentUC.ID = "UC" + num;
this.panelAdministracjaKategoria.ContentControls.Add(currentUC);
if (update)
{
//currentUC.Text = num;
this.panelAdministracjaKategoria.UpdateContent();
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnStan_DirectClick(object sender, DirectEventArgs e)
{
this.LoadUserControl("StanAdm1","Kontrolki/StanAdm/StanAdm.ascx", true);
}
}
File StanAdm.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="StanAdm.ascx.cs" Inherits="HelpDeskLayout.Kontrolki.Administracja.Kontrolki.StanAdm.StanAdm" %>
<script type="text/javascript">
MyApp = {
StanDodaj: function (grid, form) {
grid.hide();
form.show();
}
}
</script>
<ext:GridPanel ID="GridPanelAdministracjaStan" runat="server" Title="Stan" Flex="1" Layout="FitLayout" >
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:Button ID="Button1" runat="server" Text="Dodaj" Icon="Add" Handler="MyApp.StanDodaj(#{GridPanelAdministracjaStan},#{panelFormPanelStanDodaj} )"/>
<ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server" />
<ext:Button ID="Button2" runat="server" Text="Usuń" Icon="Delete" />
</Items>
</ext:Toolbar>
</TopBar>
<Store>
<ext:Store runat="server" ID="storeGridAdministracjaStan" >
<Model>
<ext:Model ID="Model1" runat="server" IDProperty="StanID" Name="StanModel">
<Fields>
<ext:ModelField Name="StanID" Type="Int"></ext:ModelField>
<ext:ModelField Name="StanNazwa" Type="String"></ext:ModelField>
</Fields>
</ext:Model>
</Model>
<Proxy>
<ext:AjaxProxy Url="StanHandler.ashx">
<Reader>
<ext:JsonReader Root="data" />
</Reader>
<API
Update="StanUpdate.ashx"
Create="StanUpdate.ashx"
Destroy="StanUpdate.ashx"
>
</API>
</ext:AjaxProxy>
</Proxy>
</ext:Store>
</Store>
<ColumnModel>
<Columns>
<ext:RowNumbererColumn ID="RowNumbererColumn1" runat="server" Width="50" Text="LP."/>
<ext:Column ID="Column1" runat="server" Text="StanID" DataIndex="StanID" Flex="2" Hidden="true" />
<ext:Column ID="Column2" runat="server" Text="Nazwa" DataIndex="StanNazwa" Flex="4" />
</Columns>
</ColumnModel>
<Features>
<ext:GridFilters Local="true" MenuFilterText="Filtry">
<Filters>
<ext:NumericFilter DataIndex="StanID" EmptyText="Wprowadź numer..." />
<ext:StringFilter DataIndex="StanNazwa" />
</Filters>
</ext:GridFilters>
</Features>
<Listeners>
<ItemDblClick ></ItemDblClick>
</Listeners>
</ext:GridPanel>
<ext:Panel runat="server" ID="panelFormPanelStanDodaj" Border="false" Flex="1" Hidden="true" >
<Items>
<ext:FormPanel ID="formPanelStanDodaj" runat="server" Title="Dodawanie stanu" Padding="10" Frame="true" >
<Items>
<ext:FieldSet runat="server" Padding="10">
<Items>
<ext:TextField runat="server" Name="StanNazwa" FieldLabel="Nazwa stanu" InputWidth="200" AllowBlank="false" MaxLength="100"></ext:TextField>
<ext:Hidden runat="server" Name="StanID" ></ext:Hidden>
</Items>
</ext:FieldSet>
</Items>
<Buttons>
<ext:Button runat="server" Text="Zapisz" Handler="" ></ext:Button>
<ext:Button runat="server" Text="Anuluj" Handler=""></ext:Button>
</Buttons>
</ext:FormPanel>
</Items>
</ext:Panel>