1

ESRI ArcGIS Server で使用する Dojo を試し始めたところです。いくつかのチュートリアルを試しましたが、Dojo FilteringSelect Dijit に問題があります。

私のコードの関連セクション:

<script>
  dojo.require("esri.map");
  dojo.require("esri.tasks.query");
  dojo.require("dojo.data.ItemFileReadStore");
  dojo.require("dijit.form.FilteringSelect");

  var map;

  function init() {
    map = new esri.Map("mapDiv",{
      basemap: "streets",
      center: [-80.94, 33.646],
      zoom: 8
    });
    dojo.connect(map, "onLoad", initFunctionality);
  }

  function initFunctionality(map) {
    //build query task
    var queryTask = new esri.tasks.QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/3");

    //build query filter
    var query = new esri.tasks.Query();
    query.returnGeometry = true;
    query.outFields = ["NAME", "POP2000", "POP2007", "POP00_SQMI", "POP07_SQMI"];
    query.where = "STATE_NAME = 'South Carolina'";
    query.outSpatialReference = {"wkid":102100};

    var infoTemplate = new esri.InfoTemplate();
    infoTemplate.setTitle("${NAME}");
    infoTemplate.setContent( "<b>2000 Population: </b>${POP2000}<br/>"
                         + "<b>2000 Population per Sq. Mi.: </b>${POP00_SQMI}<br/>"
                         + "<b>2007 Population: </b>${POP2007}<br/>"
                         + "<b>2007 Population per Sq. Mi.: </b>${POP07_SQMI}");

    map.infoWindow.resize(245,105);

    //Can listen for onComplete event to process results or can use the callback option in the queryTask.execute method.
    dojo.connect(queryTask, "onComplete", function(featureSet) {
      map.graphics.clear();

      var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255,255,255,0.35]), 1),new dojo.Color([125,125,125,0.35]));

      //QueryTask returns a featureSet.  Loop through features in the featureSet and add them to the map.
      dojo.forEach(featureSet.features,function(feature){
        var graphic = feature;
        graphic.setSymbol(symbol);
        graphic.setInfoTemplate(infoTemplate);

        map.graphics.add(graphic);
      });
    });

    queryTask.execute(query);
  }

  function initLineID(features) {
    var lineIdObjects = [];
    dojo.forEach(features.features, function(feature) {
        lineIdObjects.push({"name": feature.attributes.field_name});
    });

    //Build the appropriate data object for our data component
    var data = {
          "identifier": "name",
          "items": lineIdObjects
    }

    //bind the data object to the datastore
    var lineDataStore = new dojo.data.ItemFileReadStore({data: data});

    //bind the data store to the FilteringSelect component
    dijit.byId("lineid").store = lineDataStore;
 } 

  dojo.ready(init);
</script>

としても

<input dojoType="dijit.form.FilteringSelect" 
       id="lineid"
       searchAttr="name" 
       name="widgetName" 
       onChange="doSomething(this.value)">

私が直面している課題は、結果のページに基本的なものしか表示されないことです

<input type="text"> 

箱。これがなぜなのか知っている人はいますか?ありがとう。

4

2 に答える 2

1

テーマを設定していないと思います。これを行うには、スタイルシートを追加して body 要素を変更します。

この例では、claro テーマを使用しています。

<link href="PATH_TO/dojo/resources/dojo.css" rel="stylesheet">
<link href="PATH_TO/dijit/themes/dijit.css" rel="stylesheet">
<link href="PATH_TO/dijit/themes/tundra/tundra.css" rel="stylesheet">

body 要素にテーマ名を追加します。

<body class="tundra">
于 2013-01-20T12:37:32.130 に答える
0

parseOnLoad が false に設定されました。今後の参考のために、なぜ false のままにしておく必要があるのでしょうか?

于 2013-01-20T17:00:31.270 に答える