国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

6.12.為GroupingCollection創(chuàng)建異步刷新

2024-04-27 13:51:59
字體:
供稿:網(wǎng)友
6.12.1. 問題
我想異步刷新大數(shù)據(jù)量的GroupingCollection 表格,只在調(diào)用時(shí)重繪。
6.12.2. 解決辦法
使用GroupingCollection.refresh(async:Boolean),設(shè)置異步標(biāo)志為true。
6.12.3. 討論
GroupingCollection.refresh 方法接受一個(gè)標(biāo)志指示分組是否需要異步或同步執(zhí)行。當(dāng)數(shù)據(jù)行數(shù)量非常巨大時(shí),設(shè)置標(biāo)志為true 可在顯示之前刷新分組結(jié)果。這通常用來解決避免當(dāng)GroupingCollection.refresh 調(diào)用需花費(fèi)很長時(shí)間而導(dǎo)致Flash Player 響應(yīng)超時(shí)問題。

分組的異步生成在用戶需要與分組項(xiàng)交互時(shí)非常有用。GroupingCollection.cancelRefresh 可以停止正在進(jìn)行的分組,并根據(jù)用戶的輸入開始新的分組。

下面的例子中,點(diǎn)擊populateADGButton 按鈕生成隨機(jī)數(shù)據(jù)顯示在AdvancedDataGrid。你可以修改數(shù)字分檔器生成隨機(jī)數(shù)據(jù)行數(shù)量,點(diǎn)擊Group 按鈕開始異步刷新。AdvancedDataGrid會(huì)立即顯示分組結(jié)果。你可以在任何時(shí)候點(diǎn)擊Cancel Grouping 按鈕取消分組。
+展開
-XML
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="verticalwidth="520height="440">

<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.collections.IGroupingCollection;
import mx.collections.GroupingField;
import mx.collections.Grouping;
import mx.collections.GroupingCollection;
[Bindable]
private var generatedData:Array = [];
private var companyNames:Array = ["Adobe""BEA""Cosmos",
"Dogma""Enigma","Fury""Gama""Hima""Indian""Jaadu",
"Karish""Linovo""Micro""Novice","Oyster""Puple""Quag",
"Rendi""Scrup""Tempt""Ubiqut""Verna""Wision","Xeno",
"Yoga""Zeal" ];
private var products:Array = [ "Infuse""MaxVis""Fusion",
"Horizon""Apex""Zeeta""Maza""Orion""Omega""Zoota",
"Quata""Morion" ];
private var countries:Array = [ "India""USA""Canada",
"China""Japan""France""Germany""UK""Brazil""Italy",
"Chile""Bhutan""Sri Lanka" ];
private var years:Array = ["2000""2001""2002""2003",
"2004""2005""2006""2007""2008""2009""2010""2011",
"2012""2013""2014""2015""2016","2017""2018""2019",
"2020""2021""2022""2023""2024"];
private var quarters:Array = ["Q1""Q2""Q3""Q4"];
private var months:Array = ["Jan""Feb""Mar""Apr",
"May""Jun""Jul""Aug""Sep""Oct""Nov""Dec" ];
private var sales:Array = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ;
private var costs:Array = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ;
private var dimNameMatch:Object = { Company:companyNames,
Product:products, Country:countries, Year:years, Quarter:quarters,
Month:months,Sales:sales,Cost:costs};
private function generateData():void
{
generatedData = [];
var length:int = numRows.value;
var dimNameMap:Object = dimNameMatch;
for (var index:int = 0; index < length; ++index)
{
var newObj:Object = {};
for (var prop:String in dimNameMap)
{
var input:Array = dimNameMap[prop];
var inputIndex:int = Math.random()*input.length;
newObj[prop] = input[inputIndex];
}
generatedData.push(newObj);
}
}
private function populateADG():void
{
if (generatedData.length != numRows.value)
generateData();
adg.dataProvider = generatedData;
}
[Bindable]
private var gc:GroupingCollection;
private function groupData():void
{
var fields:Array = [];
if (company.selected)
fields.push(new GroupingField("Company"));
if (product.selected)
fields.push(new GroupingField("Product"));
if (year.selected)
fields.push(new GroupingField("Year"));
if (fields.length == 0)
{
Alert.show("Select at least one of the items to
group on");
return;
}
gc = new GroupingCollection();
gc.source = generatedData;
gc.grouping = new Grouping();
gc.grouping.fields = fields;
//use async refresh so that we get to see the results early.
gc.refresh(true);
adg.dataProvider = gc;
}
private function handleOptionChange():void
{
//user has not started grouping yet
if (!gc) return;
//stop any refresh that might be going on
gc.cancelRefresh();
var fields:Array = [];
if (company.selected)
fields.push(new GroupingField("Company"));
if (product.selected)
fields.push(new GroupingField("Product"));
if (year.selected)
fields.push(new GroupingField("Year"));
//user might have checked off everything
if (fields.length == 0)
{
return;
}
gc.grouping.fields = fields;
gc.refresh(true);
}

]]>
</mx:Script>
<mx:AdvancedDataGrid id="adgwidth="100%height="260" >
<mx:columns>
<mx:AdvancedDataGridColumn dataField="Company" />
<mx:AdvancedDataGridColumn dataField="Product" />
<mx:AdvancedDataGridColumn dataField="Year" />
<mx:AdvancedDataGridColumn dataField="Sales" />
</mx:columns>
</mx:AdvancedDataGrid>
<mx:HBox>
<mx:NumericStepper id="numRowsstepSize="1000minimum="1000"
maximum="10000" />

<mx:Button label="Populate ADGclick="populateADG()"
id="populateADGButton"/>

</mx:HBox>
<mx:VBox>
<mx:HBox>
<mx:Label text="Grouping fields:" />
<mx:CheckBox id="companylabel="Companyselected="true"
click="handleOptionChange()"/>

<mx:CheckBox id="productlabel="Product"
click="handleOptionChange()"/>

<mx:CheckBox id="yearlabel="Year"
click="handleOptionChange()"/>

</mx:HBox>
<mx:HBox>
<mx:Button label="Groupclick="groupData()" />
<mx:Button label="Cancel groupingclick="gc.cancelRefresh()"
enabled="{gc != null}"/>

</mx:HBox>
</mx:VBox>
</mx:Application>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 望谟县| 长白| 桑日县| 白朗县| 揭西县| 南召县| 娄底市| 如皋市| 石门县| 波密县| 桂阳县| 讷河市| 抚州市| 巨野县| 新安县| 鱼台县| 苍梧县| 莒南县| 钦州市| 阿克| 九龙坡区| 南澳县| 喀喇沁旗| 布拖县| 甘南县| 松滋市| 资阳市| 虞城县| 松江区| 丽水市| 广宁县| 和政县| 古交市| 昭通市| 景德镇市| 长海县| 金阳县| 汉川市| 镇雄县| 新泰市| 政和县|