123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- <!doctype html>
- <html>
- <head>
- <meta charset='utf-8'>
- <title>Search - Handsontable</title>
- <!--
- Loading Handsontable (full distribution that includes all dependencies)
- -->
- <link data-jsfiddle="common" rel="stylesheet" media="screen" href="../dist/handsontable.css">
- <link data-jsfiddle="common" rel="stylesheet" media="screen" href="../dist/pikaday/pikaday.css">
- <script data-jsfiddle="common" src="../dist/pikaday/pikaday.js"></script>
- <script data-jsfiddle="common" src="../dist/moment/moment.js"></script>
- <script data-jsfiddle="common" src="../dist/zeroclipboard/ZeroClipboard.js"></script>
- <script data-jsfiddle="common" src="../dist/numbro/numbro.js"></script>
- <script data-jsfiddle="common" src="../dist/numbro/languages.js"></script>
- <script data-jsfiddle="common" src="../dist/handsontable.js"></script>
- <!--
- Loading demo dependencies. They are used here only to enhance the examples on this page
- -->
- <link data-jsfiddle="common" rel="stylesheet" media="screen" href="css/samples.css?20140331">
- <script src="js/samples.js"></script>
- <script src="js/highlight/highlight.pack.js"></script>
- <link rel="stylesheet" media="screen" href="js/highlight/styles/github.css">
- <link rel="stylesheet" href="css/font-awesome/css/font-awesome.min.css">
- <!--
- Facebook open graph. Don't copy this to your project :)
- -->
- <meta property="og:title" content="Search">
- <meta property="og:description"
- content="">
- <meta property="og:url" content="http://handsontable.com/demo/search.html">
- <meta property="og:image" content="http://handsontable.com/demo/image/og-image.png">
- <meta property="og:image:type" content="image/png">
- <meta property="og:image:width" content="409">
- <meta property="og:image:height" content="164">
- <link rel="canonical" href="http://handsontable.com/demo/search.html">
- <!--
- Google Analytics for GitHub Page. Don't copy this to your project :)
- -->
- <script src="js/ga.js"></script>
- </head>
- <body>
- <div class="wrapper">
- <div class="wrapper-row">
- <div id="global-menu-clone">
- <h1><a href="../index.html">Handsontable</a></h1>
- </div>
- <div id="container">
- <div class="columnLayout">
- <div class="rowLayout">
- <div class="descLayout">
- <div class="pad">
- <h2>Search</h2>
- <p>
- You can easily add the ability to search through Handsontable content, using <code>searchPlugin</code>.
- </p>
- <p>
- See <a href="https://github.com/handsontable/handsontable/wiki/Search-plugin">wiki</a> for an in-depth documentation.
- </p>
- <ul>
- <li><a href="#simplest-use-case">Simplest use case</a></li>
- <li><a href="#custom-search-result-class">Custom search result class</a></li>
- <li><a href="#custom-query-method">Custom query method</a></li>
- <li><a href="#custom-callback">Custom callback</a></li>
- </ul>
- </div>
- </div>
- </div>
- <div class="rowLayout">
- <div class="descLayout">
- <div class="pad" data-jsfiddle="example1">
- <h2 id="simplest-use-case">Simplest use case</h2>
- <input id='search_field' type="search" placeholder="Search" />
- <div id="example1"></div>
- </div>
- </div>
- <div class="codeLayout">
- <div class="pad">
- <div class="jsFiddle">
- <button class="jsFiddleLink" data-runfiddle="example1">Edit in jsFiddle</button>
- </div>
- <style data-jsfiddle="example1">
- [type="search"] {
- margin: 0 0 10px;
- }
- </style>
- <script data-jsfiddle="example1">
- var
- data = [
- ['Nissan', 2009, 'black', 'black'],
- ['Nissan', 2006, 'blue', 'blue'],
- ['Chrysler', 2004, 'yellow', 'black'],
- ['Volvo', 2012, 'yellow', 'gray']
- ],
- example = document.getElementById('example1'),
- searchFiled = document.getElementById('search_field'),
- hot;
- hot = new Handsontable(example, {
- data: data,
- colHeaders: true,
- search: true
- });
- function onlyExactMatch(queryStr, value) {
- return queryStr.toString() === value.toString();
- }
- Handsontable.dom.addEvent(searchFiled, 'keyup', function (event) {
- var queryResult = hot.search.query(this.value);
- console.log(queryResult);
- hot.render();
- });
- </script>
- </div>
- </div>
- </div>
- <div class="rowLayout">
- <div class="descLayout">
- <div class="pad" data-jsfiddle="example2">
- <h2 id="custom-search-result-class">Custom search result class</h2>
- <input id='search_field2' type="search" placeholder="Search" />
- <div id="example2"></div>
- </div>
- </div>
- <div class="codeLayout">
- <div class="pad">
- <div class="jsFiddle">
- <button class="jsFiddleLink" data-runfiddle="example2">Edit in jsFiddle</button>
- </div>
- <style data-jsfiddle="example2">
- .htCore td.customClass {
- background: #1E90FF;
- color: #f8f8ff;
- }
- </style>
- <script data-jsfiddle="example2">
- var data = [
- ["Nissan", 2009, "black", "black"],
- ["Nissan", 2006, "blue", "blue"],
- ["Chrysler", 2004, "yellow", "black"],
- ["Volvo", 2012, "white", "gray"]
- ]
- , example2 = document.getElementById("example2");
- var hot2 = new Handsontable(example2,{
- data: data,
- colHeaders: true,
- search: {
- searchResultClass: 'customClass'
- }
- });
- var searchFiled2 = document.getElementById('search_field2');
- Handsontable.dom.addEvent(searchFiled2,'keyup', function (event) {
- var queryResult = hot2.search.query(this.value);
- console.log(queryResult);
- hot2.render();
- });
- </script>
- </div>
- </div>
- </div>
- <div class="rowLayout">
- <div class="descLayout">
- <div class="pad" data-jsfiddle="example3">
- <h2 id="custom-query-method">Custom query method</h2>
- <input id='search_field3' type="search" placeholder="Search" />
- <div id="example3"></div>
- </div>
- </div>
- <div class="codeLayout">
- <div class="pad">
- <div class="jsFiddle">
- <button class="jsFiddleLink" data-runfiddle="example3">Edit in jsFiddle</button>
- </div>
- <script data-jsfiddle="example3">
- var data = [
- ["Nissan", 2009, "black", "black"],
- ["Nissan", 2006, "blue", "blue"],
- ["Chrysler", 2004, "yellow", "black"],
- ["Volvo", 2012, "white", "gray"]
- ]
- , example3 = document.getElementById("example3");
- var onlyExactMatch = function (queryStr, value) {
- return queryStr.toString() === value.toString();
- };
- var hot3 = new Handsontable(example3,{
- data: data,
- colHeaders: true,
- search: {
- queryMethod: onlyExactMatch
- }
- });
- var searchFiled3 = document.getElementById('search_field3');
- Handsontable.dom.addEvent(searchFiled3,'keyup', function (event) {
- var queryResult = hot3.search.query(this.value);
- console.log(queryResult);
- hot3.render();
- });
- </script>
- </div>
- </div>
- </div>
- <div class="rowLayout">
- <div class="descLayout">
- <div class="pad" data-jsfiddle="example4">
- <h2 id="custom-callback">Custom callback</h2>
- <input id='search_field4' type="search" placeholder="Search" /> <span id="resultCount">0</span> results
- <div id="example4"></div>
- </div>
- </div>
- <div class="codeLayout">
- <div class="pad">
- <div class="jsFiddle">
- <button class="jsFiddleLink" data-runfiddle="example4">Edit in jsFiddle</button>
- </div>
- <script data-jsfiddle="example4">
- var data = [
- ["Nissan", 2009, "black", "black"],
- ["Nissan", 2006, "blue", "blue"],
- ["Chrysler", 2004, "yellow", "black"],
- ["Volvo", 2012, "white", "gray"]
- ]
- , example4 = document.getElementById("example4");
- var searchResultCount = 0;
- var searchResultCounter = function (instance, row, col, value, result) {
- Handsontable.Search.DEFAULT_CALLBACK.apply(this, arguments);
- if (result) {
- searchResultCount++;
- }
- };
- var hot4 = new Handsontable(example4,{
- data: data,
- colHeaders: true,
- search: {
- callback: searchResultCounter
- }
- });
- var searchFiled4 = document.getElementById('search_field4');
- var resultCount = document.getElementById('resultCount');
- Handsontable.dom.addEvent(searchFiled4, 'keyup', function (event) {
- searchResultCount = 0;
- var queryResult = hot4.search.query(this.value);
- console.log(queryResult);
- resultCount.innerText = searchResultCount.toString();
- hot4.render();
- });
- </script>
- </div>
- </div>
- </div>
- <div class="footer-text">
- </div>
- </div>
- </div>
- </div>
- </div>
- <div id="outside-links-wrapper"></div>
- </body>
- </html>
|