--- /dev/null
+<html>\r
+<head>\r
+ <title>The source code</title>\r
+ <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+ <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body onload="prettyPrint();">\r
+ <pre class="prettyprint lang-js">Ext.onReady(function(){
+
+ var ds = new Ext.data.Store({
+ proxy: new Ext.data.ScriptTagProxy({
+ url: 'http://extjs.com/forum/topics-remote.php'
+ }),
+ reader: new Ext.data.JsonReader({
+ root: 'topics',
+ totalProperty: 'totalCount',
+ id: 'post_id'
+ }, [
+ {name: 'title', mapping: 'topic_title'},
+ {name: 'topicId', mapping: 'topic_id'},
+ {name: 'author', mapping: 'author'},
+ {name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'},
+ {name: 'excerpt', mapping: 'post_text'}
+ ])
+ });
+
+ // Custom rendering Template
+ var resultTpl = new Ext.XTemplate(
+ '<tpl for="."><div class="search-item">',
+ '<h3><span>{lastPost:date("M j, Y")}<br />by {author}</span>{title}</h3>',
+ '{excerpt}',
+ '</div></tpl>'
+ );
+
+ var search = new Ext.form.ComboBox({
+ store: ds,
+ displayField:'title',
+ typeAhead: false,
+ loadingText: 'Searching...',
+ width: 570,
+ pageSize:10,
+ hideTrigger:true,
+ tpl: resultTpl,
+ applyTo: 'search',
+ itemSelector: 'div.search-item',
+ onSelect: function(record){ // override default onSelect to do redirect
+ window.location =
+ String.format('http://extjs.com/forum/showthread.php?t={0}&p={1}', record.data.topicId, record.id);
+ }
+ });
+});</pre> \r
+</body>\r
+</html>
\ No newline at end of file