投放本站广告请联系:
extjscn#126.com
定制:组合框模板(Customizing: ComboBox Templates)
演示(demo)地址在文章最后.
效果图如下:
主要文件forum-search.html,forum-search.js。
forum-search.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>ComboBox - Live Search</title> <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" /> <!-- GC --> <!-- LIBS --> <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script> <!-- ENDLIBS --> <script type="text/javascript" src="../../ext-all.js"></script> <script type="text/javascript" src="forum-search.js"></script> <link rel="stylesheet" type="text/css" href="combos.css" /> <!-- Common Styles for the examples --> <link rel="stylesheet" type="text/css" href="../examples.css" /> <style type="text/css"> p { width:650px; } </style> </head> <body> <script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES --> <p> <b>Combo with Templates and Ajax</b><br /> This is a more advanced example that shows how you can combine paging, Ext.Template and a remote data store to create a "live search" feature. </p> <p>The js is not minified so it is readable. See <a href="forum-search.js">forum-search.js</a>.</p> <!-- The box wrap markup embedded instead of using Element.boxWrap() --> <div style="width:600px;"> <div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div> <div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"> <h3 style="margin-bottom:5px;">Search the Ext Forums</h3> <input type="text" size="40" name="search" id="search" /> <div style="padding-top:4px;"> Live search requires a minimum of 4 characters. </div> </div></div></div> <div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div> </div> </body> </html>
forum-search.js
/* * Ext JS Library 2.0.2 * Copyright(c) 2006-2008, Ext JS, LLC. * licensing@extjs.com * * extjs.com/license */ 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); } }); });
演示地址:http://extjs.org.cn/extjs/examples/form/forum-search.html
- 关键字:
- 要发表评论,请先登录