I know this is going to be a hard one to follow.....but hope someone can...
I am now trying to select features from that Feature Class via JS 4.14 api and write them to a Graphic...this is working SORT OF....
For some reason I can select the features from certain fields and not from others....I am very confused.
I have 3 combo boxes in the app that push values to queries to query the data.
All the values you see in the ComboBoxes exist in the FC itself. I will post and example below
I can only get features selected from the combo box with the miles (DISTANCE) values.
COMBO BOXES
<select id="mySelect" onchange="window.JsController.cboChanged()">
<option value="9a35172e071f4a33b191172a9b4b02ae">feature 1</option>
<option value="6a35172e071f4a33b191172a9b4b02ae">feature 2</option>
<option value="1a35172e071f4a33b191172a9b4b02ae">feature 3</option>
</select>
<select id="mySelect2" onchange="window.JsController.cboChanged2()">
<option value="10">10 miles</option>
<option value="50">50 miles</option>
<option value="20">20 miles</option>
</select>
<select id="mySelect3" onchange="window.JsController.cboChanged3()">
<option value="1520 Split Oak Ln, Henrico, Virginia, 23229">address 1</option>
<option value="113 Buffalo Rd, Clarksville, Virginia(VA), 23927">address 2</option>
<option value="8817 Sherando Dr, Bristow, Virginia(VA), 20136">address 3</option>
</select>
I am calling the JS code from .net C# as follows...the on Return features calling the function displayResultsUniqueID for all 3 combobox change events
window.JsController = {
// SEARCH BY UNIQUE ID
cboChanged: function () {
resultsLayer2.removeAll();
var x = "";
x = document.getElementById("mySelect").value;
queryMultipartPolyongUniqueID(x).then(displayResultsUniqueID);
},
// SEARCH BY DISTANCE
cboChanged2: function () {
resultsLayer2.removeAll();
var x = "";
x = document.getElementById("mySelect2").value;
queryMultipartPolyongUniqueID2(x).then(displayResultsUniqueID);
},
// SEARCH BY ADDRESS
cboChanged3: function () {
resultsLayer2.removeAll();
var x = "";
x = document.getElementById("mySelect3").value;
queryMultipartPolyongUniqueID3(x).then(displayResultsUniqueID);
}
};
I am then attempting to Query my Feature Class as follows from each of the ComboBox OnChange Event
function queryMultipartPolyongUniqueID(feature) {
var str = feature;
var query = "";
query = MultiPartPolygonsLayer.createQuery();
query.where = "UNIQUEIDparameter = " + str;
return MultiPartPolygonsLayer.queryFeatures(query);
}
function queryMultipartPolyongUniqueID2(feature) {
var str = feature;
var query = "";
query = MultiPartPolygonsLayer.createQuery();
query.where = "DISTANCEparameter = " + str;
return MultiPartPolygonsLayer.queryFeatures(query);
}
function queryMultipartPolyongUniqueID3(feature) {
var str = feature;
var query = "";
query = MultiPartPolygonsLayer.createQuery();
query.where = "ADDRESSgeocode = " + str;
return MultiPartPolygonsLayer.queryFeatures(query);
}
I then do the same for all 3 combo boxes
They all call the same function to display the results
then(displayResultsUniqueID);
function displayResultsUniqueID(results) {
resultsLayer2.removeAll();
var features2 = results.features.map(function (graphic) {
graphic.symbol = {
type: "simple-fill",
style: "solid",
color: [240, 248, 255, 0.9],
size: "10px", // pixels
outline: {
// autocasts as new SimpleLineSymbol()
color: [240, 248, 255, 0.9],
width: 1 // points
}
};
return graphic;
});
var numCounties2 = features2.length;
alert(numCounties2 + " Counties found");
document.getElementById("demo").innerHTML = numCounties2 + " features found from query";
resultsLayer2.addMany(features2);
}
This is from the Feature Class I am trying to query showing the 3 fields and their types
This is an example of the Feature Service Queried from ArcGIS Server to Show that the Values DO in fact exist
If I change the values in the UNIQUEIDparameter field to something like 4,5,6 and then change the Comobox to reflect those values the query WORKS. BUT when I use a longer string it fails
<select id="mySelect" onchange="window.JsController.cboChanged()">
<option value="4">feature 1</option>
<option value="5">feature 2</option>
<option value="6">feature 3</option>
</select>
WHY ARE certain fields queryable and other are not....they are all String fields...And on top of that if I shorted the length of the UNIQUEIDparameter field values to 4,5,6 and then change the combobox values it works for the UNIQUEIDparameter. Longer values do not work....
Ultimately I need to query a GUID field.
I can post the solution if need be....but thought someone might have some ideas for me to check
Solved! Go to Solution.
that was it ....I went back to ArcGIS Server and tried to run the queries there....I had to place ' ' around the value to get it to work....then I brought that back to Javascript and it works...
query.where = "idvalues= ' " + strresults + " ' ";
Think I figured it out....had to put ' ' around the value
query.where = "NWTL_ID = ' " + str + " ' ";
that was it ....I went back to ArcGIS Server and tried to run the queries there....I had to place ' ' around the value to get it to work....then I brought that back to Javascript and it works...
query.where = "idvalues= ' " + strresults + " ' ";