Linda,
Sure you can here is a sample to get you started:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Filtering FeatureTable</title>
<link rel="stylesheet" href="https://community.esri.com//js.arcgis.com/3.16/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="https://community.esri.com//js.arcgis.com/3.16/esri/css/esri.css">
<script src="//js.arcgis.com/3.16/"></script>
<style>
html, body, #map{
width:100%;
height:100%;
margin:0;
padding:0;
}
#header {
overflow:hidden;
border:none;
border-bottom:3px solid #badb9c;
font-family:Windows;
font-size:14pt;
color:#000000;
background:#80bb7e;
}
.filterTb {
padding-left: 12px;
}
.esri-feature-table .esri-feature-table-menu {
background-color: #80bb7e;
}
</style>
<script>
var map;
require([
"esri/layers/FeatureLayer",
"esri/dijit/FeatureTable",
"esri/geometry/webMercatorUtils",
"esri/map",
"dojo/dom-construct",
"dojo/dom",
"dojo/parser",
"dojo/ready",
"dojo/on",
"dojo/_base/lang",
"dijit/registry",
"esri/tasks/query",
"dijit/form/Button",
"dijit/layout/ContentPane",
"dijit/layout/BorderContainer",
"dijit/form/TextBox"
], function (
FeatureLayer, FeatureTable, webMercatorUtils, Map,
domConstruct, dom, parser, ready, on,lang,
registry, Query, Button, ContentPane, BorderContainer, TextBox
) {
parser.parse();
ready(function(){
var myFeatureLayer;
var lastWhere = "";
var map = new Map("map",{
basemap: "streets"
});
map.on("load", loadTable);
function loadTable(){
// Create the feature layer
myFeatureLayer = new FeatureLayer("https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Warren_College_Trees/FeatureServer...", {
mode: FeatureLayer.MODE_ONDEMAND,
visible: true,
outFields: ["*"],
id: "fLayer"
});
//set map extent
on(myFeatureLayer, "load", function(evt){
var extent = myFeatureLayer.fullExtent;
if (webMercatorUtils.canProject(extent, map)) {
map.setExtent( webMercatorUtils.project(extent, map) );
}
});
on(dijit.byId("stringTextBox"), 'change', function(value){
var userVal = dijit.byId("stringTextBox").get('value');
var oidFld = myFeatureLayer.objectIdField;
var query = new Query();
if(value.length >= 3){
lastWhere = query.where = "Sci_Name LIKE '%" + userVal + "%'";
myFeatureLayer.queryIds(query, lang.hitch(this, function(objectIds) {
myFeatureTable.selectedRowIds = objectIds;
myFeatureTable._showSelectedRecords();
}));
}else{
if(lastWhere !== ''){
query.where = "1=1";
myFeatureLayer.queryIds(query, lang.hitch(this, function(objectIds) {
myFeatureTable.selectedRowIds = objectIds;
myFeatureTable._showSelectedRecords();
}));
lastWhere = '';
}
}
});
map.addLayer(myFeatureLayer);
myFeatureTable = new FeatureTable({
"featureLayer" : myFeatureLayer,
"outFields": ["Collected","Crew","Status","Spp_Code", "Height", "Cmn_Name","Sci_Name","Street","Native"],
"map" : map,
"gridOptions": {}
}, 'myTableNode');
myFeatureTable.startup();
}
});
});
</script>
</head>
<body class="claro esri">
<div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline'" style="width:100%; height:100%;">
<div id="header" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'" >
Filter table by Sci Name:
<input id="stringTextBox" data-dojo-type="dijit/form/TextBox" data-dojo-props="trim:true, intermediateChanges:true" class="dijit-form-TextBox filterTb" />
</div>
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center', splitter:true" style="height:70%">
<div id="map"></div>
</div>
<div id="bot" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom', splitter:true" style="height:30%">
<div id="myTableNode"></div>
</div>
</div>
</body>
</html>