Actionscript 3 :: Flex DataGrid Autoscroll On DataProvider Change?
Aug 9, 2011
My Flex datagrid automatically scrolls to the top when I update the dataProvider (ArrayCollection). I do not want this to happen, but I still want all of the objects to update. I am developing a semi-real time dashboard for a customer's management system, that will update often. If it scrolls to the top every time it updates, it will be very difficult and frustrating to use.I've attempted to use the following techniques to prevent this, none have worked.
I've attempted to dispatch a mouse event to hold the vertical scrollbar in place, I've attempted to lock the vertical scrollbar position value in place (saving and reassigning)..
Both have single columns. Selecting one item from Divsions datagrid should display members of that Division in the Members datagrid. But following code has some problem and Members of a particular division do not show up when respective Divsion is clicked.
Following are some snippets of the related code. Hope someone can spot an error in it.
I have an array collection as the dataprovider to a datagrid. When I change a value in the arraycollection, a particular row gets updated in the datagrid. I want to get the index of that particular row. How do I get it?
I've added an eventListener to the COLLECTION_CHANGE event that is fired when the grid is finished resorting the items in its dataProvider, after the user clicks on a column header:MyType (myDataGrid.dataProvider).addEventListener(CollectionEvent.COLLECTION_CHANGE,onDataGridResort);
i am working on an aplication using flex,adobe air...i have a datagrid with a XML as my dataprovider...during the execution of program my XML is updated....after XMl is updated and saved my datagrid should also get update..I have used Dataprovidername.refresh() method but it is not working.
I'm trying to get this code working: <mx:DataGrid x="359" y="221" width="623" height="176"> <mx:dataProvider> <fx:Object name="Garbage Collection" code="7777" hours="2"/> <fx:Object name="Road Repair" code="8888" hours="6"/> <fx:Object name="Lawn Maintenance" code="9999" hours="12"/> [Code] ..... I even don't have the header text in my columns.
There are several ArrayCollections and DataGrid in my application. Number of ArrayCollections determined by the input data. How to create own dataprovider for each DataGrid column?
I create a DataGrid to display a XML file and I have used XMLListCollection before. But when I modified the XML file, the DataGrid does NOT refresh itself automatically. I googled for this problem and found these links: refresh flex dataGrid
I have a main datagrid, and want to launch a window with another datagrid in it, bringing in a different dataprovider. However, when I do this it acts funnny, brings in some default datagrid information and then gives me an error when I try to set the dataprovider:"multiple initializers for property dataprovider. (note: 'dataprovider' is the default property of mx.controls.datagrid)"
Im working at a DataGrid which has a custom itemRenderer with a checkbox and a Label inside. Im struggling adding the the values from a xml to the wright label dynamically... how can I make the connection from the datagrid's dataProvider (a xml doc) to the label and the checkbox? My itemRenderer loks a following:
i have a method with brings data of particular table, as given my parameter to that method,
now i want to fetch data from corresponding table and it too list, and send back flex and form dynamically Grid & add dataprovider dynamically as for its corresponded table colomns in flex side ?
Now i want this create a Datagrid in flex dynamically by using its design & master data table in action script i done everyting , my dataGrid had formed as for his master design,but data is not showing ?
I need to display DropDownLists in a column of a DataGrid in my Flex application. Here is what I am doing:
First, I have a item renderer function that creates a custom item renderer, and passes it a property that is an IList that will be used as the dataProvider of the dropDownList:
private function rendererFunction(item:Object):ClassFactory { var itemRenderer:ClassFactory = new ClassFactory(AudActionDropDownIR); itemRenderer.properties = {AudActionData: AudActionData};
[Code]....
First, how can I call the init function when the renderer is created? Second, when I set the column's itemRendererFunction="rendererFunction", the app will not launch, a white screen comes up. But when I set itemRenderer="components.AudActionDropDownIR", the app will launch, but of course there is no data in the dropdown list.
The flex DataGrid colums are arranged alphabetically by default. I need to order the DataGrid colums as per the order in its dataProvider. The dataprovider is the result of the HTTPService . And the number of columns is not known to us . The number of columns depends on the HTTPService result.
I have a flex datagrid. it is bound to an array collection. if the user sorts on column X it works fine. then, if the user causes the array collection to change, the datagrid forgets that it was sorted on column X.what do I need to do to preserve this sort preference so that the new array data will appear sorted by column X?
I am creating the standard "Click to add row" control but I really don't want to dirty the dataProvider with a "placeholder" since it is bound to the model and could end up in the database. Is there a way to add a row that isn't represented in the dataProvider? I started down the road of adding an item directly to listItems but then that needed an item in rowInfo and then that need a reference in rowMap.
I'm trying to change Flex 3 ToggleButtonBar dataprovider on user or admin log in. I'm trying to use 2 viewstack, and I've got a component where the login form is in the component. What should I do to define the dataprovider based on user log in?
I am encountering a bizarre Flex 3.4 issue. I have a class that acts a dataprovider to my entire application named "DataProvider.as": package { public class DataProvider { [Bindable] public static var email_enable:Boolean = true; }}
In an mxml form, "Settings.mxml" I have a checkbox control which is bound to the email_enable variable of my dataprovider class: <mx:CheckBox x="452" y="170" label="{Language.loadLanguageResource('lblEmail')}" id="chkEmail" selected="{DataProvider.email_enable}" change="onChange()"/>
All is well as far as getting the value, if I set the variable in my dataprovider to either true or false, the checkbox reflects this change; however, if I click on the checkbox and change it's value, the dataprovider variable never reflects the change.
I have a component that contains a list that implements a custom renderer. I use this component as a tooltip, keeping one in memory and just altering the databindings as necessary.
Something like this where TTComponent is a class that extends Canvas:
Now, what happens is when data containing many items is set to tt.data, the list resizes itself larger and displays fine. However, after this, if data containing few items is set to tt.data, the component momentarily displays larger than it needs to be, then resizes itself smaller.
What I'd like to do is have the component resize itself before it displays, so I don't see the resize on screen.
Is there a way to apply a renderer to a grid in a way so that it doesn't modify the values in the data provider? I have a datagrid and on one of its columns I have a customer renderer which overrides the set data function and converts the number value in the dataprovider to a word. My problem is that when I sort the grid by that column it sorts by the new value, whereas I want it to sort by the old value that was originally in the dataprovider. Here is my renderer:
In flex 4.5, I have an application that has a BorderContainer that loads a spark list (mxml style - _myList and the borderContainer is stored in a library outside of the parent application) that loads an arrayCollection with an itemRenderer (I should note said itemRenderer is not an inline renderer - on selection of an item in the list, the itemRenderer expands, loads a particular control within the item renderer based on data passed from the selected item in the list) and allows the user to perform a search. This works all well and good on startup/load, until I try to change the dataProvider for the list (my app allows users to switch data sources which then creates a new dataProvider with new variables). I have tried:
I have a simple list and a background refresh protocol.When the list is scrolled down, the refresh scrolls it back to the top. I want to stop this.I have tried catching the COLLECTION_CHANGE event and validateNow(); // try to get the component to reset to the new datalist.ensureIndexIsVisible(previousIndex); // actually, I search for the previous data id in the IList, but that's not importantThis fails because the list resets itself after the change).I hate to use a Timer, ENTER_FRAME, or callLater(), but I cannot seem to figure out a way.The only other alternatives I can see is sub-classing the List so it can catch the dataProviderChanged event the DataGroup in the skin is throwing.
recently, I research for the collection framework, and find LinkedSet(AS3Commons collection framework,it is a good opensource framework) written in ActionScript, but it can't use as dataProvider in ComboBox or DataGrid, because only implements ICollectionView can use as dataProvider. So I want to try if a class implements ICollectionView can work or not. I know Flex has build-in class implements ICollectionView, but I only want to define a class not use build-in class. The class as simple as possible.(can work is enough)
I have a Datagrid with an ArrayCollection as DataProvider, the arrayCollection is partially generated by a remoteObject call, the dataprovider seems to works at least until I try to edit the field...By the RemoteObject I only receive an ArrayCollection with the field ip, but the datagrid looks for the fields ip, check and save...If I add/edit this new field it works, but only under particular condition
This code always work in the 3 points, so at the end of the call the ArrayCollection is always filled with the new values, but the datagrid refresh the items only in point #1 and #2.
What should I be using to pull information from either DataGrid or DataProvider Cells. I guess itemToLabel(), or getEditingData() doesnt work any more.
In a DataGrid, how can I force data() of all itemRenderers on visible rows to be called when I've made an update to the dataProvider.I'n the following the Grid isn't updated after pressing doSomething. If I have a large list the update is done when scrolling down and then back up again, or in the case of the TreeGrid i open/close a node.
I have a DataGrid in Flex, with one column a checkbox and another a numeric value. When the checkbox is clicked, the numeric value should change, either to 0 if the checkbox is unselected, or to a pre-defined minimum value if the checkbox is selected. Here is the code I have:
The value updates in the data (I can see it when I close and open the dialog this is in), but it doesn't update instantly in the data grid. How can I make the value visibly change as soon as the checkbox is clicked?
I am creating Flex application.When enter data in data grid cell that time i want to check that cell value is less then 20 and if it not then change that cell's back color to red.
i have a datagrid which contained several items,when i click one row, a panel will show,however, if i have already selected one row and then click some blank place, this panel will also show because there is already a selecteditem,which will be a problem. Then i change this click event to change event, however, there will be another problem, which is if i click the same row, nothing will happend. so is there any better idea when i click a row, a panel shows and when i click the blank place, nothing happened.