2016-09-22 7 views
0

私はesriのArcGIS javascript APIを使用していますが、私は現在コンパクトバージョンのapiとdojoxを使用して、モバイルフレンドリーなアプリケーション(http://webapps.kent.gov.uk/KCC.MyNearestGIS.Web.Sites.Public/Default.aspx)を作成しています。モバイル。
スクロール可能なペインを使用してアドレス検索の結果を保持したいので、検索ペインをモバイルデバイスの画面に収まる大きさに保つことができますが、ユーザーは結果をスクロールできますRoundRectListが固定パネルのサイズを超えています。
IEまたはChrome(モバイルエミュレータを含む)でスクロールするScrollablePaneを取得できません。マークアップで作成するのかプログラムによって作成するのかにかかわらず、理由を理解できません。なぜなら、dojoの例ツールキット。
私のコードはここにある:https://jsfiddle.net/TimSkinner/ue3ok7v4/dojox/mobile/ScrollablePaneがスクロールしない

function C_CreateLocationResultsGrid(results, resultsHeight){ 
require(["dojo/dom", 
     "dojo/query", 
     "dojo/dom-attr", 
     "dojo/dom-prop", 
     "dojo/_base/declare", 
     "dijit/registry", 
     "dojox/grid/DataGrid", 
     "dojox/mobile/ScrollablePane", 
     "dojox/mobile/RoundRectList", 
     "dojox/mobile/LongListMixin", 
     "dojox/mobile/ListItem", 
     "dojo/on", 
     "dojo/domReady!"], function (dom, query, domAttr, domProp, declare, registry, DataGrid, ScrollablePane, RoundRectList, LongListMixin, ListItem, on) { 

    if (registry.byId("uxLocationGrid") != 'undefined' && registry.byId("uxLocationGrid") != null) { 
     registry.byId("uxLocationGrid").destroy(); 
    } 

    var uxLocationGrid; 

    if (registry.byId("uxLocationScrollablePane") != 'undefined' && registry.byId("uxLocationScrollablePane") != null) { 
     registry.byId("uxLocationScrollablePane").destroy(); 
    } 

    var uxLocationScrollablePane = new ScrollablePane({ 
     id: 'uxLocationScrollablePane', 
     //srcNodeRef: dom.byId('uxLocationSearchResultsDiv'), 
     height: resultsHeight, 
     allowNestedScrolls: true, 
     scrollBar: true, 
     scrollDir: 'v', 
     scrollType: 0 
    }); 

    uxLocationGrid = new declare([RoundRectList, LongListMixin])({ 
     id: 'uxLocationGrid', 
     select: '', 
     tag: 'ul' 
    }); 

    if (registry.byId("uxLocationListHeader") != 'undefined' && registry.byId("uxLocationListHeader") != null) { 
     registry.byId("uxLocationListHeader").destroy(); 
    } 

    var uxLocationListHeader = new ListItem({ 
     id: 'uxLocationListHeader', 
     header: true, 
     label: 'Select a location', 
     clickable: false 
    }); 

    uxLocationGrid.addChild(uxLocationListHeader); 

    var uxLocationListItem; 

    for (var i = 0; i < results.length; i++) { 
     var listItemId = "uxLocationListItem" + i.toString(); 

     if (registry.byId(listItemId) != 'undefined' && registry.byId(listItemId) != null) { 
      registry.byId(listItemId).destroy(); 
     } 

     uxLocationListItem = new ListItem({ 
      id: listItemId, 
      label: results[i].RESULT, 
      variableHeight: true, 
      anchorLabel: true, 
      onAnchorLabelClicked: C_OnLocationRowClickHandler, 
      clickable: true 
     }); 

     uxLocationGrid.addChild(uxLocationListItem); 
    } 

    uxLocationScrollablePane.domNode.appendChild(uxLocationGrid.domNode); 
    dom.byId("uxLocationSearchResultsDiv").appendChild(uxLocationScrollablePane.domNode); 

    uxLocationGrid.startup(); 

    uxLocationScrollablePane.startup(); 
    uxLocationScrollablePane.resize(); 
}); 
} 

答えて

0

、いくつかの異なるものを試した後、私は最終的に、マークアップにスクロールペインとroundrectlistを作成して、プログラムリストを取り込むことで、この作業を得ました。なぜこれが動作するのかわかりませんが、それはありません。

関連する問題