Advertisement
Guest User

ExtNet MVC01

a guest
Sep 23rd, 2011
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 14.92 KB | None | 0 0
  1. <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
  2.  
  3. <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  5.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head id="Head1" runat="server">
  8.     <title></title>
  9.     <script type="text/javascript">
  10.         var failureHandler = function (form, action) {
  11.             var msg = "";
  12.             if (action.failureType == "client" || (action.result && action.result.errors && action.result.errors.length > 0)) {
  13.                msg = "Please validate information";
  14.             } else if (action.result && action.result.extraParams.msg) {
  15.                msg = action.result.extraParams.msg;
  16.             } else if (action.response) {
  17.                 msg = action.response.responseText;
  18.             }
  19.  
  20.             Ext.Msg.show({
  21.                 title: "Saving Error",
  22.                 msg: msg,
  23.                 buttons: Ext.Msg.OK,
  24.                 icon: Ext.Msg.ERROR
  25.             });
  26.         };
  27.  
  28.         var successHandler = function (form, action) {
  29.  
  30.             if (action.result && action.result.extraParams && action.result.extraParams.newID) {
  31.                dsUser.getAt(0).id = action.result.extraParams.newID;
  32.                 if (dsUser.getAt(0).newRecord) {
  33.                     delete dsUser.getAt(0).newRecord;
  34.                 }
  35.             } else {
  36.                 //Ext.MessageBox.alert("Success", "Customer has been saved!");
  37.             }
  38.  
  39.             Ext.MessageBox.alert("Information", "The record has been modified.");
  40.  
  41.             userChanged = true;
  42.  
  43.             if (action.options.params.setNew) {
  44.                 DetailsForm.form.reset();
  45.                 dsUser.removeAll();
  46.  
  47.                 var rec = new dsUser.recordType();
  48.                 rec.newRecord = true;
  49.                 dsUser.add(rec);
  50.                 initUI(true);
  51.             } else {
  52.                 initUI(false);
  53.             }
  54.  
  55.         };
  56.  
  57.         var getUserID = function () {
  58.             return (dsUser.getCount() > 0 && !dsUser.getAt(0).newRecord) ? dsUser.getAt(0).id : ""
  59.        };
  60.  
  61.         var userLoaded = function (store, records) {
  62.             if (records.length > 0) {
  63.                 DetailsForm.form.loadRecord(records[0]);
  64.                 dsAddresses.loadData(records[0].data.Addresses);
  65.             } else {
  66.                 DetailsForm.form.reset();
  67.             }
  68.  
  69.             initUI(false);
  70.             UserPanel.el.unmask();
  71.         };
  72.  
  73.         var initUI = function (isNew) {
  74.             btnDelete.setDisabled(isNew);
  75.         };
  76.  
  77.         // bind the address with the selected addresstype
  78.         var bindAddress = function (addressType) {
  79.             AddressForm.form.reset();
  80.            
  81.             if (dsAddresses.getTotalCount() > 0) {
  82.                 dsAddresses.filter('addresstype', addressType, false, false);
  83.                 if (dsAddresses.getCount() > 0) {
  84.                     AddressForm.form.loadRecord(dsAddresses.getAt(0));
  85.                 } else {
  86.                     AddressForm.form.reset();
  87.  
  88.                     var defaultData = {
  89.                     addressuid: '30AF3429-26EB-4998-AE2D-7C820091C8DB',
  90.                     addresstype: addressType,
  91.                     address1: 'This is a test'
  92.                     };
  93.  
  94.                     var rec = new dsAddresses.recordType(defaultData);
  95.                     rec.newRecord = true;
  96.                     dsAddresses.add(rec);
  97.                 }
  98.             }
  99.         };
  100.  
  101.     </script>
  102.     <style type="text/css">
  103.         .txtCustomers-list
  104.         {
  105.             width: 298px;
  106.             font: 11px tahoma,arial,helvetica,sans-serif;
  107.         }
  108.        
  109.         .txtCustomers-list th
  110.         {
  111.             font-weight: bold;
  112.         }
  113.        
  114.         .txtCustomers-list td, .txtCustomers-list th
  115.         {
  116.             padding: 3px;
  117.         }
  118.     </style>
  119. </head>
  120. <body>
  121.     <ext:ResourceManager runat="server">
  122.         <Listeners>
  123.             <DocumentReady Handler="if (Ext.isEmpty(#{txtFilter}.getValue(), false)) { #{dsUser}.load(); }" />
  124.         </Listeners>
  125.     </ext:ResourceManager>
  126.     <ext:Store ID="dsUser" runat="server" AutoLoad="false">
  127.         <Proxy>
  128.             <ext:HttpProxy Url="/Data/GetUserById/" />
  129.         </Proxy>
  130.         <Reader>
  131.             <ext:JsonReader IDProperty="userid" Root="data">
  132.                 <Fields>
  133.                     <ext:RecordField Name="userid" />
  134.                     <ext:RecordField Name="username" />
  135.                     <ext:RecordField Name="password" />
  136.                     <ext:RecordField Name="name" />
  137.                     <ext:RecordField Name="surname" />
  138.                     <ext:RecordField Name="email" />
  139.                     <ext:RecordField Name="masterentity" />
  140.                     <ext:RecordField Name="propertyid" />
  141.                     <ext:RecordField Name="isactive" />
  142.                     <ext:RecordField Name="Addresses" />
  143.                 </Fields>
  144.             </ext:JsonReader>
  145.         </Reader>
  146.         <BaseParams>
  147.             <ext:Parameter Name="userId" Value="#{txtFilter}.getValue()" Mode="Raw" />
  148.         </BaseParams>
  149.         <Listeners>
  150.             <BeforeLoad Handler="#{UserPanel}.el.mask('Loading data...', 'x-mask-loading');" />
  151.             <LoadException Handler="#{UserPanel}.el.unmask();" />
  152.             <Load Fn="userLoaded" />
  153.         </Listeners>
  154.     </ext:Store>
  155.     <ext:Store ID="dsAddresses" runat="server" AutoLoad="false">
  156.         <Reader>
  157.             <ext:JsonReader IDProperty="addressuid">
  158.                 <Fields>
  159.                     <ext:RecordField Name="addressuid" />
  160.                     <ext:RecordField Name="addresstype" />
  161.                     <ext:RecordField Name="address1" />
  162.                     <ext:RecordField Name="address2" />
  163.                     <ext:RecordField Name="province" />
  164.                     <ext:RecordField Name="postalcode" />
  165.                     <ext:RecordField Name="state" />
  166.                     <ext:RecordField Name="city" />
  167.                 </Fields>
  168.             </ext:JsonReader>
  169.         </Reader>
  170.     </ext:Store>
  171.     <ext:Store ID="dsAddressTypes" ShowWarningOnFailure="true" runat="server" AutoLoad="false">
  172.         <Proxy>
  173.             <ext:HttpProxy Url="/CatalogsData/GetAddressTypes/" />
  174.         </Proxy>
  175.         <Reader>
  176.             <ext:JsonReader Root="data" IDProperty="addresstype">
  177.                 <Fields>
  178.                     <ext:RecordField Name="addresstype" />
  179.                     <ext:RecordField Name="description" />
  180.                     <ext:RecordField Name="isactive" />
  181.                 </Fields>
  182.             </ext:JsonReader>
  183.         </Reader>
  184.     </ext:Store>
  185.     <ext:Viewport runat="server" Layout="fit">
  186.         <Items>
  187.             <ext:Panel runat="server" Border="false" Layout="fit">
  188.                 <TopBar>
  189.                     <ext:Toolbar runat="server">
  190.                         <Items>
  191.                             <ext:Button runat="server" Text="Save" Icon="Disk">
  192.                                 <Listeners>
  193.                                     <Click Handler="#{DetailsForm}.form.submit({ waitMsg : 'Saving...', params : { id : getUserID() }, success : successHandler, failure : failureHandler });" />
  194.                                 </Listeners>
  195.                             </ext:Button>
  196.                             <ext:Button ID="btnDelete" runat="server" Text="Delete" Icon="Cross">
  197.                                 <DirectEvents>
  198.                                     <Click Url="/Data/DeleteUser" CleanRequest="true" Method="POST" Failure="Ext.Msg.show({title:'Delete Error',msg: result.errorMessage,buttons: Ext.Msg.OK,icon: Ext.Msg.ERROR});"
  199.                                        Success="txtCustomers.lastQuery=null; userChanged = true;#{UserPager}.doLoad(Math.max(0, #{UserPager}.cursor-1));">
  200.                                         <Confirmation ConfirmRequest="true" Title="Alert" Message="Do you want to delete the recrod?" />
  201.                                         <ExtraParams>
  202.                                             <ext:Parameter Name="id" Value="#{dsUser}.getAt(0).id" Mode="Raw" />
  203.                                         </ExtraParams>
  204.                                     </Click>
  205.                                 </DirectEvents>
  206.                             </ext:Button>
  207.                             <ext:ToolbarFill runat="server" />
  208.                             <ext:Hidden ID="txtFilter" runat="server" Text='<%# ViewData["id"] %>' AutoDataBind="true">
  209.                                 <Listeners>
  210.                                     <Change Handler="#{UserPager}.changePage(1);" Delay="30" />
  211.                                 </Listeners>
  212.                             </ext:Hidden>
  213.                         </Items>
  214.                     </ext:Toolbar>
  215.                 </TopBar>
  216.                 <Items>
  217.                     <ext:TabPanel ID="UserPanel" runat="server" Border="false" LayoutOnTabChange="true">
  218.                         <Items>
  219.                             <ext:Panel runat="server" Title="General" Padding="6" Layout="fit">
  220.                                 <Items>
  221.                                     <ext:FormPanel ID="DetailsForm" runat="server" Border="false" Url="/Data/SaveUser/"
  222.                                        LabelWidth="130">
  223.                                         <Items>
  224.                                             <ext:FieldSet runat="server" Layout="form">
  225.                                                 <Items>
  226.                                                     <ext:TextField ID="userid" ReadOnly="true" runat="server" FieldLabel="User ID"
  227.                                                        LabelSeparator=" " MaxLength="5" AllowBlank="false" />
  228.                                                     <ext:TextField ID="username" ReadOnly="true" runat="server" Width="250" FieldLabel="User Name" />
  229.                                                     <ext:TextField ID="masterentity" ReadOnly="true" runat="server" Width="250" FieldLabel="Entity" />
  230.                                                 </Items>
  231.                                             </ext:FieldSet>
  232.                                             <ext:Container runat="server" Layout="hbox">
  233.                                                 <Items>
  234.                                                     <ext:Container runat="server" Flex="1">
  235.                                                         <Items>
  236.                                                             <ext:FieldSet runat="server" Title="Information" Border="false" Layout="form" DefaultAnchor="-10">
  237.                                                                 <Items>
  238.                                                                     <ext:TextField ID="name" runat="server" FieldLabel="Name" MsgTarget="Qtip" AllowBlank="false" />
  239.                                                                     <ext:TextField ID="email" runat="server" FieldLabel="Email" />
  240.                                                                 </Items>
  241.                                                             </ext:FieldSet>
  242.                                                             <ext:FieldSet runat="server" Title="Phone" Border="false" Layout="form" DefaultAnchor="-10">
  243.                                                                 <Items>
  244.                                                                     <ext:TextField ID="Phone" runat="server" FieldLabel="Office" />
  245.                                                                     <ext:TextField ID="Mobile" runat="server" FieldLabel="Mobile" />
  246.                                                                 </Items>
  247.                                                             </ext:FieldSet>
  248.                                                         </Items>
  249.                                                     </ext:Container>
  250.                                                     <ext:FieldSet runat="server" Title="Addresses" Border="false" Layout="form" Flex="1"
  251.                                                        DefaultAnchor="100%">
  252.                                                         <Items>
  253.                                                             <ext:ComboBox ID="cboType" runat="server" TypeAhead="true" FieldLabel="Address Type"
  254.                                                                StoreID="dsAddressTypes" DisplayField="description" Editable="false" ForceSelection="true"
  255.                                                                SelectOnFocus="true" EmptyText="Select address type" ValueField="addresstype">
  256.                                                                 <Listeners>
  257.                                                                     <Select Handler="bindAddress(this.getValue());" />
  258.                                                                 </Listeners>
  259.                                                             </ext:ComboBox>
  260.                                                             <ext:FormPanel ID="AddressForm" runat="server" Border="false" LabelWidth="130">
  261.                                                                 <Items>
  262.                                                                     <ext:TextField ID="address1" runat="server" FieldLabel="Street" />
  263.                                                                     <ext:TextField ID="address2" runat="server" FieldLabel="Number" />
  264.                                                                     <ext:TextField ID="province" runat="server" FieldLabel="Province" />
  265.                                                                     <ext:TextField ID="city" runat="server" FieldLabel="City" />
  266.                                                                     <ext:TextField ID="state" runat="server" FieldLabel="State" />
  267.                                                                     <ext:TextField ID="postalcode" runat="server" FieldLabel="ZipCode" />
  268.                                                                 </Items>
  269.                                                             </ext:FormPanel>
  270.                                                         </Items>
  271.                                                     </ext:FieldSet>
  272.                                                 </Items>
  273.                                             </ext:Container>
  274.                                         </Items>
  275.                                     </ext:FormPanel>
  276.                                 </Items>
  277.                             </ext:Panel>
  278.                         </Items>
  279.                         <BottomBar>
  280.                             <ext:PagingToolbar ID="UserPager" runat="server" PageSize="1" StoreID="dsUser" DisplayMsg="Showing Record {0} de {2}" />
  281.                         </BottomBar>
  282.                     </ext:TabPanel>
  283.                 </Items>
  284.             </ext:Panel>
  285.         </Items>
  286.     </ext:Viewport>
  287. </body>
  288. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement