注:私はFLEX4を使用しています。
こんにちは、データグリッド自体を非表示にせずにデータグリッドのデータを非表示にする方法があるかどうか知りたいですか?データグリッドが空の状態で画面を開きたい。ユーザーがコンボボックスからオプションを選択した場合にのみ、データグリッドのコンテンツを表示したいと思います。これを行う方法はありますか?(この理由は、複雑で説明するのが面白くありませんが、私がしなければならないことです。)
ありがとう!
注:私はFLEX4を使用しています。
こんにちは、データグリッド自体を非表示にせずにデータグリッドのデータを非表示にする方法があるかどうか知りたいですか?データグリッドが空の状態で画面を開きたい。ユーザーがコンボボックスからオプションを選択した場合にのみ、データグリッドのコンテンツを表示したいと思います。これを行う方法はありますか?(この理由は、複雑で説明するのが面白くありませんが、私がしなければならないことです。)
ありがとう!
dataProvider
データを表示する準備ができるまで、データグリッドをnull
または空のコレクションに設定できます。
デフォルトでは、nullまたは空のコレクションをデータグリッドに初期化します。次に、目的のコンボボックスオプションを選択したら、データグリッドデータプロバイダーを有効なデータに設定します。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
import mx.collections.ArrayList;
import spark.events.IndexChangeEvent;
[Bindable]
public var data:ArrayList = new ArrayList([ "one", "two", "three" ]);
protected function combobox1_changeHandler(event:IndexChangeEvent):void
{
switch (comboBox.selectedItem)
{
case "Show data":
dataGrid.dataProvider = data;
break;
default:
dataGrid.dataProvider = null;
break;
}
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:DataGrid id="dataGrid"
dataProvider="{null}" />
<s:ComboBox id="comboBox"
change="combobox1_changeHandler(event)">
<s:dataProvider>
<s:ArrayList>
<fx:String>Show data</fx:String>
<fx:String>Hide data</fx:String>
</s:ArrayList>
</s:dataProvider>
</s:ComboBox>
</s:Application>
別のアプローチは、Flex状態システムを使用することです。
2つの状態を定義して、データグリッド内のデータの可視性を制御できます。次に、現在の状態に応じてデータプロバイダーを設定します。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
currentState="hideData">
<s:states>
<s:State name="showData" />
<s:State name="hideData" />
</s:states>
<fx:Script>
<![CDATA[
import mx.collections.ArrayList;
import spark.events.IndexChangeEvent;
[Bindable]
public var data:ArrayList = new ArrayList([ "one", "two", "three" ]);
protected function combobox1_changeHandler(event:IndexChangeEvent):void
{
switch (comboBox.selectedItem)
{
case "Show data":
currentState = "showData";
break;
default:
currentState = "hideData";
break;
}
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:DataGrid id="dataGrid"
dataProvider.hideData="{null}"
dataProvider.showData="{data}" />
<s:ComboBox id="comboBox"
change="combobox1_changeHandler(event)">
<s:dataProvider>
<s:ArrayList>
<fx:String>Show data</fx:String>
<fx:String>Hide data</fx:String>
</s:ArrayList>
</s:dataProvider>
</s:ComboBox>
</s:Application>