UNPKG

dojox

Version:

Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.

142 lines (134 loc) 4.66 kB
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Static Master/Detail Pattern -- Multiple Address Detail example</title> <style type="text/css"> @import "css/app-format.css"; @import "../../../dijit/themes/claro/claro.css"; </style> <script type="text/javascript" data-dojo-config="parseOnLoad:1,isDebug:1,async:1,mvc:{debugBindings:1}" src="../../../dojo/dojo.js"></script> <script type="text/javascript"> var model; require([ 'dojo/parser', 'dojo/ready', "dojox/mvc/getStateful", 'dijit/form/TextBox', 'dijit/form/Button', 'dojox/mvc/Group', 'dojox/mvc/Output' ], function(parser, ready, getStateful){ // Initial data var order = { "Serial" : "360324", "First" : "John", "Last" : "Doe", "Email" : "jdoe@example.com", "ShipTo" : { "Street" : "123 Valley Rd-ShipTo", "City" : "Katonah", "State" : "NY", "Zip" : "10536" }, "BillTo" : { "Street" : "17 Skyline Dr-BillTo", "City" : "Hawthorne", "State" : "NY", "Zip" : "10532" } }; // The getStateful call will take json data and create make it Stateful model = getStateful(order); // the model created above is initialized with // model.First set to "John", model.Last set to "Doe" and model.Email set to "jdoe@example.com" }); function setRef(id, model, attr) { require([ "dijit/registry", "dojox/mvc/at" ], function(registry, at){ var widget = registry.byId(id); widget.set("target", model[attr]); }); }; </script> </head> <body class="claro"> <script type="dojo/require">at: "dojox/mvc/at"</script> <div id="wrapper"> <div id="header"> <div id="navigation"> </div> <div id="headerInsert"> <h1>Order Shipping Details</h1> <h2>Data Binding Example - Group Container.</h2> </div> </div> <div id="main"> <div id="leftNav"></div> <div id="mainContent"> <!-- The group container denotes some logical grouping of widgets and also serves to establish a parent data binding context for its children. The target attribute for the outermost container obtains the binding from the "page scope" itself. --> <div class="row" data-dojo-type="dojox.mvc.Group" data-dojo-props="target: model"> <div class="row"> <label class="cell" for="serialInput">Order #:</label> <input class="cell" id="serialInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Serial')"> </div> <div class="row"> <label class="cell" for="lastnameInput">Last:</label> <input class="cell" id="lastnameInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Last')"> </div> <div class="row"> <label class="cell" for="emailInput">Email:</label> <input class="cell" id="emailInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Email')"> </div> </div> <br/> Choose: <button id="shipto" type="button" data-dojo-type="dijit.form.Button" data-dojo-props="onClick: function(){setRef('addrGroup', model, 'ShipTo');}">Ship To</button> <button id="billto" type="button" data-dojo-type="dijit.form.Button" data-dojo-props="onClick: function(){setRef('addrGroup', model, 'BillTo');}">Bill To</button> <br/> <!-- For convenience, the widget hierarchy matches the data hierarchy (see JSON literal above). In this implementation, the child attributes are simple property names of the parent binding context. --> <div class="row" id="addrGroup" data-dojo-type="dojox.mvc.Group" data-dojo-props="target: model.ShipTo"> <div class="row"> <label class="cell" for="streetInput">Street:</label> <input class="cell" id="streetInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Street')"> </div> <div class="row"> <label class="cell" for="cityInput">City:</label> <input class="cell" id="cityInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'City')"> </div> <div class="row"> <label class="cell" for="stateInput">State:</label> <input class="cell" id="stateInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'State')"> </div> <div class="row"> <label class="cell" for="zipInput">Zipcode:</label> <input class="cell" id="zipInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="value: at('rel:', 'Zip')"> </div> </div> <br/> </div></div></div> </body> </html>