summaryrefslogtreecommitdiffstatshomepage
path: root/includes/js/dojox/grid/tests/test_custom_sort.html
blob: 51b0cf34f596ec8bab71c6ff44cece4f6bc1c6c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<title>Custom Sort Test - dojox.Grid</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
	<style type="text/css">
		@import "../_grid/Grid.css";
		body {
			font-size: 0.9em;
			font-family: Geneva, Arial, Helvetica, sans-serif;
		}
		.heading {
			font-weight: bold;
			padding-bottom: 0.25em;
		}
				
		#grid {
			border: 1px solid #333;
			width: 35em;
			height: 30em;
		}
	</style>
	<script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug:false, parseOnLoad: true"></script>
	<!--<script type="text/javascript">
		dojo.require("dojox.grid.Grid");
		dojo.require("dojo.parser");
	</script>-->
	<!-- Debugging -->
	<script type="text/javascript" src="../_grid/lib.js"></script>
	<script type="text/javascript" src="../_grid/drag.js"></script>
	<script type="text/javascript" src="../_grid/scroller.js"></script>
	<script type="text/javascript" src="../_grid/builder.js"></script>
	<script type="text/javascript" src="../_grid/cell.js"></script>
	<script type="text/javascript" src="../_grid/layout.js"></script>
	<script type="text/javascript" src="../_grid/rows.js"></script>
	<script type="text/javascript" src="../_grid/focus.js"></script>
	<script type="text/javascript" src="../_grid/selection.js"></script>
	<script type="text/javascript" src="../_grid/edit.js"></script>
	<script type="text/javascript" src="../_grid/view.js"></script>
	<script type="text/javascript" src="../_grid/views.js"></script>
	<script type="text/javascript" src="../_grid/rowbar.js"></script>
	<script type="text/javascript" src="../_grid/publicEvents.js"></script>
	<script type="text/javascript" src="../VirtualGrid.js"></script>
	<script type="text/javascript" src="../_data/fields.js"></script>
	<script type="text/javascript" src="../_data/model.js"></script>
	<script type="text/javascript" src="../_data/editors.js"></script>
	<script type="text/javascript" src="../Grid.js"></script>
	<script type="text/javascript" src="support/test_data.js"></script>
	<script type="text/javascript">
		// here is a custom compare function that can drive the sorting engine
		// of course, this is only valid for client-side data sets
		compare2ndLetter = function(inA, inB) {
			// sort on the second letter
			// return <0, 0, >0
			return inA.charCodeAt(1) - inB.charCodeAt(1);
		}
		
		// custom compare functions for sorting belong to the data model
		// data model keeps this kind of metadata in a object called 'fields'
		
		// you can install the custom compare function directly into fields
		// model.fields.get(3).compare = compare2ndLetter;
		
		// or you could setup fields when instantiating the model
		model = new dojox.grid.data.Table([{}, {}, {}, {compare: compare2ndLetter}], data);
		
		// a grid view is a group of columns
		var view1 = {
			cells: [[
				{name: 'Column 0'}, {name: 'Column 1'}, {name: 'Column 2'}, {name: 'Column 3', width: "auto"}, {name: 'Column 4'}
			],[
				{name: 'Column 5'}, {name: 'Column 6'}, {name: 'Column 7'}, {name: 'Column 8', field: 3, colSpan: 2}
			]]
		};
		// a grid layout is an array of views.
		var layout = [ view1 ];
</script>
</head>
<body>
<div class="heading">dojox.Grid Custom Sort Test</div>
<br />
<b>Column 3</b>'s data field has a custom sorter that sorts by the 2nd letter in the string.
<br /><br />
<div id="grid" dojoType="dojox.Grid" model="model" structure="layout"></div>
</body>
</html>