Dependent selection
<!--
Isomorphic SmartClient
Copyright(c) 1998 and beyond Isomorphic Software, Inc.
"SmartClient" is a trademark of Isomorphic Software, Inc.
All rights reserved.
Open Source License
SmartClient source code, located under the source/ directory, and the resulting assembled modules
in isomorphic/system/modules/, as well as JavaScript and CSS files under the isomorphic/skins directory are
licensed under the terms of the GNU Lesser General Public License, version 3.
The text of the LGPLv3 license is available online at http://www.gnu.org/licenses/lgpl-3.0.html
If your project precludes the use of this license, or if you'd like to support SmartClient LGPL,
we encourage you to buy a commercial license.
Icon Experience Collection
Selected 16x16 icons within the isomorphic/skins directory are part of the Icon Experience collection
(http://www.iconexperience.com) and may be freely used with any SmartClient components without charge,
but may not be used as part of screen designs separate from SmartClient components without a purchase
of a license from Icon Experience. We are working to replace these icons as soon as possible.
All other media found under the isomorphic/skins directory may be used under the LGPLv3.
Commercial Licenses
A number of commercial licenses are available for purchase. Please see http://smartclient.com/license.
Warranty Disclaimer
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
Public License for more details.
Copyright 2001 and beyond Isomorphic Software, Inc. Last revised July 20, 2008.
-->
<!-- The following code is revised from SmartClient demo code(SmartClient_70rc2_LGPL.zip).-->
<HTML><HEAD>
<SCRIPT>var isomorphicDir="isomorphic/";</SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
<SCRIPT SRC=isomorphic/system/modules/ISC_Calendar.js></SCRIPT>
<SCRIPT SRC=isomorphic/skins/standard/load_skin.js></SCRIPT>
</HEAD><BODY BGCOLOR='silver'>
<SCRIPT>
// ---------------------------------------------------------------------------------------
// Local Data Example
isc.Label.create({
contents: "Local Data",
width: "90%",
height: 25,
autoDraw: true,
baseStyle: "exampleSeparator"
});
isc.ListGrid.create({
top: 40,
width: 500,
height: 200,
canEdit:true,
autoDraw: true,
data:[
{employee:"Richard Smith", division:"Marketing", department:"Community Relations"},
{employee:"Sam Edwards", division:"Services", department:"Support"}
],
fields: [
{name:"employee", title:"Name", canEdit:false},
{name: "division",
title: "Division",
editorType: "select",
valueMap: ["Marketing", "Sales", "Manufacturing", "Services"],
// Calling 'setValueMap()' will force the 'getEditorValueMap' method to be
// re-evaluated for the department field
changed:"item.grid.setValueMap('department')"
},
{name: "department",
title: "Department",
editorType: "select",
getEditorValueMap : function (values, field, grid) {
var division = values.division;
return field.departments[division];
},
departments: {
Marketing: ["Advertising", "Community Relations"],
Sales: ["Channel Sales", "Direct Sales"],
Manufacturing: ["Design", "Development", "QA"],
Services: ["Support", "Consulting"]
},
editorProperties:{
addUnknownValues:false
}
}
]
});
// ---------------------------------------------------------------------------------------
// Remote Data Example
isc.Label.create({
contents: "Remote Data",
top: 280,
width: "90%",
height: 25,
autoDraw: true,
baseStyle: "exampleSeparator"
});
isc.ListGrid.create({
top: 320,
width: 500,
height:200,
canEdit:true,
autoDraw: true,
ID:"orderList",
fields: [
{name:"quantity", title:"Qty", type:"integer", width:30},
{name:"categoryName", title:"Category", editorType:"select",
changed:"this.grid.clearEditValue(this.rowNum, 'itemName');",
editorProperties : { optionDataSource:"supplyCategory" }
},
{name: "itemName", title:"Item", editorType: "select",
editorProperties:{
optionDataSource:"supplyItem",
getPickListFilterCriteria : function () {
var category = this.grid.getEditedCell(this.rowNum, "categoryName");
return {category:category};
}
}
}
]
});
isc.IButton.create({
top: 535,
width: 110,
title:"Order New Item",
click:"orderList.startEditingNew({quantity:1})"
});
</SCRIPT>
</BODY>
</HTML>
Related examples in the same category