How to filter spark datagrid?
SORRY, I TRY TO FILTER MY DATAGRID, BUT IT DOESN'T WORK.
WHAT'S WRONG IN THIS CODE?
IN THE DEBUG EVERYTHING IS OK UNTIL THE BOLD TEXT, BECAUSE THE DATAPROVIDER IN DATAGRID IS NOT FILTERED.
PLEASE HELP ME!!!
THANK YOU.
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="Albo" creationComplete="init(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import spark.events.GridEvent;
import spark.events.TextOperationEvent;
import spark.components.TextInput;
import spark.components.DataGrid;
import mx.collections.ArrayList;
protected function init(event:FlexEvent):void
IngegneriXML.send();
private function gridClickEvent(event:GridEvent):void
navigator.pushView(Dettaglio, event.target.selectedItem);
private function filterDataProvider(obj:Object, idx:int, arr:Array):Boolean
var txt1:String = RicCogn.text;
var txt2:String = obj._item.cognome.toString();
if (txt1.toLowerCase() == txt2.toLowerCase())
return true;
return false;
protected function RicCogn_changeHandler(event:TextOperationEvent):void
var arr:Array = Grid1.dataProvider.toArray();
var filteredArr:Array = arr.filter(filterDataProvider);
Grid1.dataProvider = new DataProvider(filteredArr);
Grid1.dataProvider.refresh();
var ara2:Array = Grid1.dataProvider.toArray();
var ara3:Array = Grid1.dataProvider.toArray();
]]>
</fx:Script>
<fx:Declarations>
<s:HTTPService id="IngegneriXML" url="C:\AlboFlash\DatiXML\ingegneri.xml"/>
</fx:Declarations>
<s:TextInput x="0" y="0" id="RicCogn" change="RicCogn_changeHandler(event)"/>
<s:DataGrid id="Grid1" x="0" y="80" dataProvider="{IngegneriXML.lastResult.ingegneri.ingegnere}" height="100%" width="100%" gridClick="gridClickEvent(event);">
<s:columns>
<s:ArrayList id="columns">
<s:GridColumn dataField="cognome" headerText="Cognome" minWidth="100"/>
<s:GridColumn dataField="nome" headerText="Nome" minWidth="100"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
</s:View>
I made it :-)
I revealed the magic.
Actually without knowing it, I was misusing the ArrayCollection class and treating it as Model, while it was obviously designed for View purposes.
Now I'm using ArrayList for that, and then I create a new ArrayCollection for different views. Then I use newArrayCollection.list = myList and newArrayCollection.filterFunction = ...
This works for me.
My recomendation would be to improve the documentation a bit, so that it is clear that it is not recommended to use same ArrayCollection for multiple views.
Regards,
Dinko
Similar Messages
-
How to make spark datagrid columns to behave like mx datagrid columns
Hello.
I have a problem with spark datagrid component. I can't force spark datagrid columns behave like old mx datagrid columns. In mx datagrid columns fills 100% of datagrid regardles of resizing column or datagrid itself (it will not show horizontal scrolling bar). In spark datagrid last column (colC) will never word wrap, event after setting horizontalScrollPolicy=off. I would like to somehow constrain spark columns to behave like mx ones.
App snippet (try to resize app and columns - especially colC - and you will see what I mean):
<?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"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
<s:ArrayCollection id="dp">
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
<s:DataItem colA="some sample data" colB="some sample data" colC="some sample data"/>
</s:ArrayCollection>
</fx:Declarations>
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<s:DataGrid id="grid" width="100%" height="100%" dataProvider="{dp}" variableRowHeight="true" horizontalScrollPolicy="off">
<s:columns>
<s:ArrayList>
<s:GridColumn headerText="Column A" dataField="colA"/>
<s:GridColumn headerText="Column B" dataField="colB"/>
<s:GridColumn headerText="Column C" dataField="colC"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
<mx:DataGrid id="grid2" width="100%" height="100%" dataProvider="{dp}" wordWrap="true" variableRowHeight="true">
<mx:columns>
<mx:DataGridColumn headerText="Column A" dataField="colA"/>
<mx:DataGridColumn headerText="Column B" dataField="colB"/>
<mx:DataGridColumn headerText="Column C" dataField="colC"/>
</mx:columns>
</mx:DataGrid>
</s:Application>the datagrid has sortItems and sortItemsOn methods you can use.
-
How to end Spark datagrid editing session
I am reading that I can use endEditorSession to end editing session programmatically.
http://help.adobe.com/en_US/flex/using/WS0ab2a460655f2dc3-427f401412c60d04dca-7ff3.html#WS 0ab2a460655f2dc3-427f401412c60d04dca-7fec
But DataGrid object does not have such method. Can someone clarify how to end up editing session?
ThanksChecking "Continuously Updates Value" in the Bindings inspector under Value helped.
-
How to filter a spark datagrid using a checkbox?
Hi i want to know how can i filter a spark datagrid using a check. I have a column by the name status on the datagrid, which can be active or inactive. When i check the checkbox i should be able to see all the records and when i uncheck it i should only be able to see all the records with the status ACTIVE...
Then, try to add another attribute in your SELECT VO statement, which truncates the original date_and_time field:
SELECT.... TRUNC(DATE_AND_TIME) as truncated_dateAfter that, put reference to that attribute in the filter facet, as follows
<f:facet name="filter">
<af:inputDate value="#{vs.filterCriteria.TruncatedDate}" id=.../>
</facet>Do not forget to add the TruncatedDate attribute in the <tree...> binding in the pageDef, along with others VO attributes. Do that manually. -
How to change header font style in Spark DataGrid?
I'm looking since last week for a way how to change the font style of the header in a Spark DataGrid. It drive me nuts that I can't find a way to do this. Have anyone one an idea how to achieve it? Any help is appreciated.
Thanks,
- ArturHi,
Some styles won't work because some text styles got hardcoded into the DefaultGridHeaderRenderer's Label. You'll run into this issue not just with the DataGrid headers but also things like the Panel's title and other places where we have text. One way to get around this issue is to create your own custom headerRenderer based on the default one and then redefine the headerRenderer skin part in the skin.
First, create a subclass of the DefaultGridHeaderRenderer and tweak the "labelDisplay" to your liking (or even just take out all the styles and style it on your own as you had earlier using your custom header renderer's name). Example below (I named it "CustomHeaderRenderer"):
<?xml version="1.0" encoding="utf-8"?>
<skins:DefaultGridHeaderRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:skins="spark.skins.spark.*"
xmlns:comps="comps.*">
<fx:Declarations>
<!-- Remove fontweight="bold" and other styles as you wish
Must be a component and not a factory. -->
<s:Label id="labelDisplay"
verticalCenter="1" left="0" right="0" top="0" bottom="0"
textAlign="start"
verticalAlign="middle"
maxDisplayedLines="1"
showTruncationTip="true" />
</fx:Declarations>
</skins:DefaultGridHeaderRenderer>
Next, create a simple DataGrid skin by creating a subclass of the spark.skins.spark.DataGridSkin in MXML and defining a new headerRenderer component in the fx:Declarations section. Example below (I named it "CustomDataGridSkin"):
<?xml version="1.0" encoding="utf-8"?>
<skins:DataGridSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:skins="spark.skins.spark.*"
xmlns:comps="comps.*">
<fx:Declarations>
<!-- Must be a factory with the right id for the skin part -->
<fx:Component id="headerRenderer">
<comps:CustomHeaderRenderer />
</fx:Component>
</fx:Declarations>
</skins:DataGridSkin>
Last, assign your new skin as the skinClass of your DataGrid (either in MXML or as a style):
<s:DataGrid skinClass="comps.CustomDataGridSkin">
I know it's not pretty, but it's the result of trading off between having completely custom skinning vs. having knobs to tweak every style. Hope this helps.
-Kevin -
How to change the header text fontFamily of spark DataGrid?
I use an embed font (Nunito-Light.ttf), and i can set the font of GridColumn to Nunito-Light in DataGrid , but it seems that it has no effect to the header of DataGrid.
and then I create a headerRenderer for spark DataGrid, and try to set the fontFamily of "labelDisplay" to Nunito-Light , but It seems still no effect .
If I set the fontFamily of "labelDisplay" to "Verdana" or "Arial" , it has effect , so strange! Is that a bug?
Anybody has the same problem? Please tell me how to solve it ,thank you very much!Hi,
Please go through following link :
http://forums.adobe.com/thread/870081#870081
Thanks and Regards,
Vibhuti Gosavi | [email protected] | www.infocepts.com -
How to resize the spark datagrid collumns based on the headertext?
Hi friends,
I am using spark datagrid for displaying the tablur data in my application, when i setting the dataprovider property of the datagrid, it displays the content exactally what i expeceted.
but the widht of the collumns are based on the content of the dataprovider, i am not able to see the full collumn name in the datagrid's header. I want to display the full collumn name to the users without setting the collumn width explicitly because the data are dynamically returned from the server. could you pls give me some ideas to acheive this...?
Thanks in advance.Hi Karthikeyan Subramain,
You can make use of typicalItem proberty to set the column width.
Here is the link for sample code which uses typicalItem:
http://butterfliesandbugs.wordpress.com/2011/03/08/its-a-best-practice-to-size-a-spark-dat agrids-columns-with-a-typicalitem/
Hope this will help you
Thanks and Best regards,
Pooja Kuber | [email protected] | www.infocepts.com -
How do I get itemDoubleClick event in spark DataGrid ???
Hello Everyone,
Recently I am working with Spark DataGrid.
Before I was using AdvancedDataGrid. In that I was capturing itemDoubleClick event.
But I am not able to find such a event in SparkdataGrid.
So I want to capture double click event on single row of DataGrid.
Some people told that, I have to use my custom ItemRenderer to do that.
But is there any way to capture itemDoubleClick event in Spark DataGrid without creating custom ItemRenderer ???You are correct. I looked a the code and the comment says it dispatches a double click if the 2nd click is within the DOUBLE_CLICK_TIME even if the first click was on another cell.
This code figures out if the double-click is a true double-click.
<?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 spark.events.GridEvent;
private var lastColumnIndex:int = -1;
private var lastRowIndex:int = -1;
// set this to change the double click time
//mx_internal::event.grid.DOUBLE_CLICK_TIME = 480; // ms
protected function dataGrid_gridClickHandler(event:GridEvent):void
trace("click on this cell", event.rowIndex, event.columnIndex);
lastRowIndex = event.rowIndex;
lastColumnIndex = event.columnIndex;
protected function dataGrid_gridDoubleClickHandler(event:GridEvent):void
if (event.rowIndex == lastRowIndex && event.columnIndex == lastColumnIndex)
trace("a real double click on this cell", event.rowIndex, event.columnIndex);
else
trace("this is a gridClick on another cell", event.rowIndex, event.columnIndex);
lastRowIndex = event.rowIndex;
lastColumnIndex = event.columnIndex;
]]>
</fx:Script>
<s:DataGrid id="dataGrid" requestedRowCount="5" verticalCenter="0" horizontalCenter="0"
doubleClickEnabled="true"
gridClick="dataGrid_gridClickHandler(event)"
gridDoubleClick="dataGrid_gridDoubleClickHandler(event)">
<s:ArrayCollection>
<s:DataItem key="1000" name="Abrasive" price="100.11" call="false"/>
<s:DataItem key="1001" name="Brush" price="110.01" call="true"/>
<s:DataItem key="1002" name="Clamp" price="120.02" call="false"/>
<s:DataItem key="1003" name="Drill" price="130.03" call="true"/>
<s:DataItem key="1004" name="Epoxy" price="140.04" call="false"/>
<s:DataItem key="1005" name="File" price="150.05" call="true"/>
<s:DataItem key="1006" name="Gouge" price="160.06" call="false"/>
<s:DataItem key="1007" name="Hook" price="170.07" call="true"/>
<s:DataItem key="1008" name="Ink" price="180.08" call="false"/>
<s:DataItem key="1009" name="Jack" price="190.09" call="true"/>
</s:ArrayCollection>
</s:DataGrid>
</s:Application> -
Spark DataGrid Embedded Font Quandary
01. In everything that follows, I am talking about the latest [21328] version of the SDK, not that I believe that my problems have anything to do with that release, just so anyone interested and willing to help will know the version.
02. My application happens to be rooted in AIR's WindowedApplication, but again, I do not think that has any impact on my problems; I believe the same results would obtain for a Flex Application.
03. I have a custom renderer for the Spark DataGrid which extends DefaultGridItemRenderer. It works fine. Its primary job is to change the font characteristics of each row in the list as a visual clue to the user as to the specific nature of the content that is accessible. Some entries are just in the Regular font, some in Bold, some in Italic, and some in Bold-Italic.
04. I have, for most of the project, embedded the necessary fonts like this:
[Embed (source="C:/Windows/Fonts/ArnoPro-Caption.otf", fontName="ArnoPro_BI_4",
fontStyle="italic",
fontWeight="bold",
mimeType="application/x-font",
embedAsCFF="true",
unicodeRange="U+0021-U+00ff, U+20ac-U+20ac")]
private const ArnoPro_BI_4:Class;
As I said, that all works just as advertized. But, that method of embedding carries the somewhat painful burden of slower compilations, so for the last 24 hours I have unseccessfully been trying to replace that with:
[Embed (source = "../resources/assets/ArnoPro_BI_4.swf", symbol="ArnoPro_BI_4")]
private const ArnoPro_BI_4:Class;
where the swf file was produced via fontswf, using this incantation:
fontswf -4 -u U+0021-U+00ff,U+20ac-U+20ac -b -i -a ArnoPro_BI_4 -o ArnoPro_BI_4.swf C:/Windows/Fonts/ArnoPro-Caption.otf
06. By all that is holy, the two different means of embedding the font ought to yield the same result, but they do not. I have debugging code inserted to print out the list of fonts upon initiation of the application, and they are identical. Both means of embedding do succeed in getting the embedded fonts into the .swf, but the attempt to use the fonts fails using the second approach.
There is, of course, no change being made to the code in the item renderer which merely uses setStyle() to effect the row-by-row result. The result in the second case is that the only style of the embedded font that renders is 'regular'.
07. I have used the 'keep-generated' facility to look at the code being generated by the mxmlc compiler and can see that different code is emitted, but it does not help me find a fix to the problem. Both forms of the meta-tag do something; both methods of embedding seem to correctly register themselves with the FontManager, but only the method of embedding which actually performs the transcoding during compilation seems to result in a set of registered fronts which can be found and correctly used to render output based on the runtime setting of the font style.Thank for the reply
I hoped that my posting indicated how the fonts in the the .swf file were constructed. The "-4", argument to the command-line tool, fontswf, as far as I can tell, is the precise analog to the "embedAsCFF" argument in the [Embed] syntax. That is what makes it so perplexing. Given all the external documentation that is available for each tool/methodology, I would have thought that the resultant bytecodes, classes, flags, whatever, would have been identical. The only difference would be the timing of when the transcoding took place.
Since it is clearly more efficient to only transcode whatever set of fonts an application needs once, not once per build/test turn-around, I would really like to make the fontswf workflow work. For those of us outside the beneficial environment of your licensed tools, the kindly-provided alternative to the facilities built into Flash Professional and/or Flash Builder give us the greatest degree of productivity.
Whoever has access to the source code for Font [I can only see the uninteresting FontAsset in the SDK] can probably determine what difference might result from mxmlc working with this intermediate output, when inline transcoding is 'tagged':
package
import mx.core.FontAsset;
[ExcludeClass]
[Embed(fontName="ArnoPro_IT_4", _resolvedSource="C:/WINDOWS/Fonts/ArnoPro-ItalicCaption.otf", fontStyle="italic", _line="1189", _pathsep="true", embedAsCFF="true", fontWeight="normal", unicodeRange="U+0021-U+00ff, U+20ac-U+20ac", source="C:/Windows/Fonts/ArnoPro-ItalicCaption.otf", _column="2", exportSymbol="AIRZoom_ArnoPro_IT_4", _file="G:/FP/AIRZoom/src/AIRZoom_AS.as", mimeType="application/x-font")]
public class AIRZoom_ArnoPro_IT_4 extends mx.core.FontAsset
public function AIRZoom_ArnoPro_IT_4()
super();
versus this, when swf extraction is 'tagged':
package
import mx.core.FontAsset;
[ExcludeClass]
[Embed(fontName="ArnoPro_IT_4", _resolvedSource="C:/WINDOWS/Fonts/ArnoPro-ItalicCaption.otf", fontStyle="italic", _line="1191", _pathsep="true", embedAsCFF="true", fontWeight="normal", unicodeRange="U+0021-U+00ff, U+20ac-U+20ac", source="C:/Windows/Fonts/ArnoPro-ItalicCaption.otf", _column="2", exportSymbol="AIRZoom_ArnoPro_IT_4", _file="G:/FP/AIRZoom/src/AIRZoom_AS.as", mimeType="application/x-font")]
public class AIRZoom_ArnoPro_IT_4 extends mx.core.FontAsset
public function AIRZoom_ArnoPro_IT_4()
super();
The only difference is that value for '_line' which probably only indicates that one of the two processes has a comment or empty line somewhere. -
Column stretch event in spark datagrid
Hi everybody,
These days I'm converting our Flex application from Flex 3 SDK to Flex 4.5 SDK (Hero).
I've a problem with the spark datagrid, and more specifically, the events listening on the columns.
How can we know that the columns in the spark datagrid are stretched or shrinked?
In Flex 3, there was a DataGridEvent.COLUMN_STRETCH event on the datagrid and I can't find the equivalent in Flex 4.5.
If you have any tips.... thanks!!!!When a GridColumn is interactively resized "widthChanged" events are dispatched because the column's width property is set. To track the entire column separator press-drag-release gesture you can listen for GridEvent.SEPARATOR_MOUSE_DOWN,SEPARATOR_MOUSE_DRAG, etc..events on the DataGrid's columnHeaderGroup skin part. If you wanted to change the way the interactive column resizing works you'd have to subclass DataGrid and override protected methods like separator_mouseDownHandler(event:GridEvent), separator_mouseDragHandler(event:GridEvent).
- Hans -
Can I create a custom scrollbar for my spark datagrid
Basically I'm trying to customize the look of my spark datagrid.
I'd like to change the header appearance and I'd also like to create a custom scrollbar.
If only Catalyst would implement a custom datagrid component. I mean the datagrid is a very popular component, isn't it?
Thanks
kristinYou need the password for free apps as well as for paid apps. The only ways that you can control what your child downloads is for you to supervise while the downloading is taking place or by totally restricting download apps with restrictions.
When you enter your password and download content, you have 15 more minutes to continue downloading before you have to enter the password again. So if you download and app - then give the iPad to your child - he or she can continue downloading apps or music or any content for the next 15 minutes without any restrictions. IF you sign out of your account, then the child can no longer download. IMHO - You should NOT give your password to your child. That really is not a good practice.
You can set restrictions on the iPad so that the child cannot download any apps at all. Go to Settings>General>Restrictions>On. Then you will have to enter a passcode for the device which you do not want to forget (if you do, you have to restore the device) so if you do this remember your passcode. You can then go to the apps settings within the restrictions and Enable Restrictions and turn off Installing Apps.
This article will provide more information for you.
http://netsecurity.about.com/od/frequentlyaskedquestions/a/How-To-Setup-Parental -Controls-On-An-Ipad-Ipod-Touch-Or-Iphone.htm -
Overriding Spark DataGrid item renderer's prepare method - renderer's child is initially null
I am currently using the 4.12.0 SDK. I have a Spark DataGrid setup that makes use of an externally-defined itemRenderer:
<s:DataGrid id="dgEquipment"
width="100%" height="100%"
doubleClickEnabled="true"
creationComplete="init()" doubleClick="popTab(event)">
<s:columns>
<s:ArrayList>
<s:GridColumn itemRenderer="renderers.equipment.IconRenderer"
dataField="EXISTING"
width="22"/>
The data provider is set programmatically after a remote call has returned a result.
I have the renderer setup as follows:
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
dataChange="init()" remove="dispose()">
<s:layout>
<s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.controls.Menu;
import mx.events.MenuEvent;
import spark.components.DataGrid;
[Bindable]
[Embed(source="../../../assets/images/Icon 1.png")]
private var ico1:Class;
[Bindable]
[Embed(source="../../../assets/images/Icon 2.png")]
private var ico2:Class;
[Bindable]
[Embed(source="../../../assets/images/Icon 3.png")]
private var ico3:Class;
private var isExisting:Boolean;
private var popUp:Menu;
private function init():void
if (data)
isExisting = data.EXISTING == 1;
private function dispose():void
if (popUp)
popUp.removeEventListener(MenuEvent.ITEM_CLICK, popUp_click);
popUp = null;
if (imgActions)
imgActions.removeEventListener(MouseEvent.CLICK, image_click);
imgActions = null;
override public function prepare(hasBeenRecycled:Boolean):void
if (data)
if ((data.TYPE == "A" || data.TYPE == "B") && !data.X && !data.Y)
disableLink();
imgActions.source = ico3;
imgActions.toolTip = "Blah blah.";
else if (data.TYPE == "C" || data.TYPE == "D")
disableLink();
else if (isExisting)
imgActions.source = ico1; //****************************** imgActions.toolTip = "More blah blah.";
imgActions.addEventListener(MouseEvent.CLICK, image_click);
else
imgActions.source = ico2;
imgActions.addEventListener(MouseEvent.CLICK, image_click);
imgActions.toolTip = "Even more blah blah.";
initPopUp();
private function initPopUp():void
private function popUp_click(event:MenuEvent):void
private function image_click(event:MouseEvent):void
private function disableLink():void
]]>
</fx:Script>
<s:Image id="imgActions"
height="18" width="18"/>
</s:GridItemRenderer>
When the code reaches the line where I have added a comment full of asterisks, I get the following error:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at renderers.equipment::IconRenderer/prepare()[C:\…\renderers\equipment\IconRenderer.mxml:81 ]
at spark.components.gridClasses::GridViewLayout/initializeItemRenderer()[/Users/justinmclean /Documents/ApacheFlex4.12.0/frameworks/projects/spark/src/spark/components/gridClasses/Gri dViewLayout.as:1808]
at spark.components.gridClasses::GridViewLayout/createTypicalItemRenderer()[/Users/justinmcl ean/Documents/ApacheFlex4.12.0/frameworks/projects/spark/src/spark/components/gridClasses/ GridViewLayout.as:1243]
at spark.components.gridClasses::GridViewLayout/updateTypicalCellSizes()[/Users/justinmclean /Documents/ApacheFlex4.12.0/frameworks/projects/spark/src/spark/components/gridClasses/Gri dViewLayout.as:1374]
at spark.components.gridClasses::GridViewLayout/measure()[/Users/justinmclean/Documents/Apac heFlex4.12.0/frameworks/projects/spark/src/spark/components/gridClasses/GridViewLayout.as: 875]
at spark.components.supportClasses::GroupBase/measure()[/Users/justinmclean/Documents/Apache Flex4.12.0/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as:1156 ]
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::measureSizes()[/Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects/framework/src/mx/cor e/UIComponent.as:9038]
at mx.core::UIComponent/validateSize()[/Users/justinmclean/Documents/ApacheFlex4.12.0/framew orks/projects/framework/src/mx/core/UIComponent.as:8962]
at spark.components::Group/validateSize()[/Users/justinmclean/Documents/ApacheFlex4.12.0/fra meworks/projects/spark/src/spark/components/Group.as:1074]
at mx.managers::LayoutManager/validateSize()[/Users/justinmclean/Documents/ApacheFlex4.12.0/ frameworks/projects/framework/src/mx/managers/LayoutManager.as:673]
at mx.managers::LayoutManager/doPhasedInstantiation()[/Users/justinmclean/Documents/ApacheFl ex4.12.0/frameworks/projects/framework/src/mx/managers/LayoutManager.as:824]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[/Users/justinmclean/Documents/ ApacheFlex4.12.0/frameworks/projects/framework/src/mx/managers/LayoutManager.as:1188]
Running the debugger shows that this occurs with the first item in the data provider. If I alter the prepare method to check for the existence of imgActions before doing anything, everything works fine after the first item. So I'll have one row in the DataGrid with a missing icon, and all the rest will have icons.
So the question is, is it normal for prepare to run before any children of the item renderer are created? If so, how should I handle this?
Many thanks in advance.A little more info. I added some event handlers to the renderer and the image (for events that I thought would be relevant), and here is the order of events based on trace statements within the handlers:
griditemrenderer1_addedHandler
griditemrenderer1_addedToStageHandler
griditemrenderer1_preinitializeHandler
imgActions_addedHandler
griditemrenderer1_addedHandler
imgActions_addedToStageHandler
imgActions_preinitializeHandler
imgActions_addedHandler
griditemrenderer1_addedHandler
imgActions_initializeHandler
griditemrenderer1_elementAddHandler
imgActions_addHandler
griditemrenderer1_initializeHandler
griditemrenderer1_addHandler
prepare called
imgActions_resizeHandler
griditemrenderer1_resizeHandler
imgActions_creationCompleteHandler
imgActions_updateCompleteHandler
griditemrenderer1_creationCompleteHandler
griditemrenderer1_updateCompleteHandler
griditemrenderer1_removeHandler
griditemrenderer1_addedHandler
griditemrenderer1_addedToStageHandler
imgActions_addedToStageHandler
griditemrenderer1_addHandler
griditemrenderer1_dataChangeHandlerTypeError: Error #1009: Cannot access a property or method of a null object reference.
prepare called
at renderers.equipment::IconRenderer/prepare()[C:\…\renderers\equipment\IconRenderer.mxml:91 ]
imgActions_renderHandler
griditemrenderer1_renderHandler -
Setting font style on hover for spark datagrid
I'm trying to skin a Spark datagrid. I have most things sorted by creating a custom skin, but one thing I can't find is how to set the colour of the row's font on hover. I can set the background colour fine, but how would I go about changing the font colour when a user hovers over the row?
ThanksHi
You don’t actually deal with the text that’s displayed in the a datagrid inside of the skin
Look at item renderers for the grid columns. You can style your text or whatever else you would like to display in the grid, in the renderer
Hope that helps a little
If you are still stuck just let me know and I’ll send you some code
Cheers
g
heres some code
NOTE: I am making this up as I sit here so I may be forgetting something. Don’t be surprised if this doesn’t work, but the basic idea is right I think
So in the spark datagrid when you set your column (if you use mxml) this will replace a glob renderer so you can have a different one for each column if you wish.
<s:GridColumn dataField="Status"
headerText="name"
width="37"
itemRenderer="fooRenderer"
/>
Or set a gloabel renderer in the grid def itself
<s:DataGrid itemRenderer=”fooRenderer” />
Then write a custom renderer: fooRenderer.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
clipAndEnableScrolling="true"
>
<fx:Script>
<![CDATA[
override public function discard(willBeRecycled:Boolean):void
labelData.text="";
super.discard(willBeRecycled);
override public function prepare(hasBeenRecycled:Boolean):void
if(data)
// set the colour of the text label to black
labelData.setStyle("color",0x000000)
// put some logic here to dynamic style the label
//check for the 'format' function on the column (THIS MAY BE WRONG)
if( column.labelFunction != null )
labelData.text = column.labelFunction( data, column );
else
labelData.text = data[column.dataField];
super.prepare(hasBeenRecycled);
]]>
</fx:Script>
<s:Label id="labelData" />
</s:GridItemRenderer -
Spark datagrid item editor font see through
I am using a default item editor on a spark datagrid.
When the user attempts to edit the field the old value shows through.
How do I get rid of this?
I am using out of the box stuff? Is this a listed bug?
Code is...
<s:GridColumn dataField="Actual" headerText="Actual" width="75" editable="true">
<s:itemRenderer>
<fx:Component>
<s:DefaultGridItemRenderer textAlign="right" background="true" backgroundColor="#FFFFFF" alpha="1.0" color="#000000" />
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
Thanks
Dan PrideTry <s:DefaultGridItemEditor if you are wanting to make it editable.
here is an example of combobox, but it is similiar ....
<s:itemEditor>
<fx:Component>
<s:ComboBoxGridItemEditor >
<s:dataProvider>
<s:ArrayList>
<fx:String>Edit</fx:String>
<fx:String>Read</fx:String>
</s:ArrayList>
</s:dataProvider>
</s:ComboBoxGridItemEditor>
</fx:Component>
</s:itemEditor>
Don -
List as item in spark datagrid
Hi,
Does anyone know how I make a spark datagrid display a list as an item?
The columns need to be dynamicly made as wel as the content of the cells.
How do I do this? Anyone?use itemrenderer to display the listbox or combobox
Maybe you are looking for
-
Why can't I get Adobe Reader to download on my mac?
Error message 'installation failed' comes up only a few seconds after starting download. Have had my MacBook Pro OS X 10.7.2 for less than a year, and downloaded microsoft office for word processing. Does the error message "PKInstallSandbox-tmp" rela
-
ABAP Class in WAD 7.0 - what's missing?
Guys, I need some help in calling an ABAP Class from the Web Application Designer 7.0. I've read all documentation about inserting my class and it looks like I'm still missing something. First I checked the class in a Test Query in 3.5. Put it in the
-
Accordion Widget to be closed WHILE loading
I know that to have the accordion be closed you set the default tab to -1. I'm doing that. The problem is that while the accordion is loading it is completely open until it is finished loading, then it closes. This behavior looks terrible and my boss
-
Preloader problem - feel like an idiot
I feel like a total idiot. I can't seem to get my preloader to work. Here's my code. What am I doing wrong? The problem is that myApp.swf loads successfully but the .onEnterFrame function thinks that loader_mc is 1 frame and 0 bytes long.
-
Message-characteristic " " is not a ref. characterist in cls. type 002
Dear sir, I have an equipment and one class of class type 002 is attached to it.I have created a characteristic .In the Additional Data tab I have filled the 'Table Name' field as EQUZ and 'Field Name' field as HEQUI. When I added this characteristic