Hello, I have done some changes in the code you posted and now it's
working as you wish.. :)
I think the problem was that you were trying to modify the field
(i.e. "reasonlist.dataProvider") which is not a field of the
datagrid's dataProvider.
Here in the xml i have added a node "dxereasonid" which maintains
the selected index of the combo and thus also sorts when dg is
sorted...
have a look...
hope it'll help you..
Regards,
Dipti.
----XML-----
<DxList>
<dxinfo>
<dxcode>129622</dxcode>
<dxdesc>AMAJOR DEPRESSIVE AFFECTIVE DISORDER SINGLE
EPISODE MODERATE DEGREE</dxdesc>
<dxsource>ECS</dxsource>
<dxereasonid>0</dxereasonid>
</dxinfo>
<dxinfo>
<dxcode>229622</dxcode>
<dxdesc>BMAJOR DEPRESSIVE AFFECTIVE DISORDER SINGLE
EPISODE MODERATE DEGREE</dxdesc>
<dxsource>ECS</dxsource>
<dxereasonid>1</dxereasonid>
</dxinfo>
<dxinfo>
<dxcode>329622</dxcode>
<dxdesc>CMAJOR DEPRESSIVE AFFECTIVE DISORDER SINGLE
EPISODE MODERATE DEGREE</dxdesc>
<dxsource>ECS</dxsource>
<dxereasonid>2</dxereasonid>
</dxinfo>
<dxinfo>
<dxcode>429622</dxcode>
<dxdesc>DMAJOR DEPRESSIVE AFFECTIVE DISORDER SINGLE
EPISODE MODERATE DEGREE</dxdesc>
<dxsource>ECS</dxsource>
<dxereasonid>0</dxereasonid>
</dxinfo>
</DxList>
-----Cell Renderer-----
<mx:VBox xmlns:mx="http://www.macromedia.com/2003/mxml"
marginLeft="0" marginBottom="0" marginRight="0" marginTop="0"
height="25" backgroundAlpha="0" width="100" verticalAlign="middle"
horizontalAlign="center" >
<mx:Script>
public static var dataProvider:Array;
private var listOwner:Object;
var getCellIndex : Function;
var getDataLabel : Function;
var dp = [ "", "Incorrect", "Resolved", "Other" ];
function setValue(str:String, item:Object, sel:Boolean) : Void
{
_cb.visible =(item!=undefined);
/*_cb.dataProvider = reasonlist.dataProvider;
_cb.selectedIndex = reasonlist.dataProvider.selectedIndex;*/
_cb.selectedIndex = listOwner.getItemAt(getCellIndex
().itemIndex).dxereasonid;
}
function getValue() : Object
{
var rd = listOwner.getItemAt(getCellIndex().itemIndex);
return rd.reasonlist.dataProvider;
}
function handleEvent(evt:Object):Void{
if (evt.type == "change"){
var rd = listOwner.getItemAt(getCellIndex
().itemIndex);
//rd.reasonlist.dataProvider.selectedIndex =
_cb.selectedIndex;
//var colName = listOwner.getColumnAt(getCellIndex
().columnIndex).columnName;
//listOwner.editField(getCellIndex().itemIndex,
colName, _cb.selectedItem);
listOwner.editField(getCellIndex
().itemIndex, "dxereasonid", _cb.selectedIndex);
}
}
</mx:Script>
<mx:ComboBox id="_cb" dataProvider="{dp}" change="handleEvent
(event)"/>
</mx:VBox>
--- In [email protected], "Joe" <[EMAIL PROTECTED]> wrote:
> Can someone please explain to me why I can not get my combo boxes
to
> sort in my data grid. I have provided the code I am using. I have
> around and around with this and I am getting no where. I can not
seem
> to get the action scripting syntax correct. Thank you!
>
> --- Data grid ----
>
> <mx:Script>
> private function initCellRenderer() : Void
> <![CDATA[
> {
> reasonlist.dataProvider =
[ "", "Incorrect", "Resolved", "Other" ];
> }
> ]]>
> </mx:Script>
>
> <mx:DataGrid rowHeight="75" width="800" height="302"
> alternatingRowColors="[#fafafa,#ffffff]"
> useRollOver="false" selectable="FALSE" >
> <mx:Model id="DXList" source="dxlist.xml"/>
> <mx:dataProvider>{DXList.dxinfo}</mx:dataProvider>
> <mx:columns>
> <mx:Array>
> <mx:DataGridColumn headerText="Dx Code"
> columnName="dxcode" textAlign="center" width="75"/>
> <mx:DataGridColumn headerText="Dx"
> columnName="dxdesc" textAlign="center" width="455" />
> <mx:DataGridColumn headerText="Dx Source"
> columnName="dxsource" textAlign="center" width="85"/>
> <mx:DataGridColumn headerText="Reason"
> columnName="reasonchoice" textAlign="center"
> cellRenderer="reasonlist"/>
> </mx:Array>
> </mx:columns>
>
> </mx:DataGrid>
> </mx:Application>
>
>
> --- XML data for data grid ------
>
> <DxList>
> <dxinfo>
> <dxcode>129622</dxcode>
> <dxdesc>AMAJOR DEPRESSIVE AFFECTIVE DISORDER SINGLE
> EPISODE MODERATE DEGREE</dxdesc>
> <dxsource>ECS</dxsource>
> </dxinfo>
> <dxinfo>
> <dxcode>229622</dxcode>
> <dxdesc>BMAJOR DEPRESSIVE AFFECTIVE DISORDER SINGLE
> EPISODE MODERATE DEGREE</dxdesc>
> <dxsource>ECS</dxsource>
> </dxinfo>
> <dxinfo>
> <dxcode>329622</dxcode>
> <dxdesc>CMAJOR DEPRESSIVE AFFECTIVE DISORDER SINGLE
> EPISODE MODERATE DEGREE</dxdesc>
> <dxsource>ECS</dxsource>
> </dxinfo>
> <dxinfo>
> <dxcode>429622</dxcode>
> <dxdesc>DMAJOR DEPRESSIVE AFFECTIVE DISORDER SINGLE
> EPISODE MODERATE DEGREE</dxdesc>
> <dxsource>ECS</dxsource>
> </dxinfo>
> <dxinfo>
>
> <DxList>
>
>
> --- CellRendering File ---
>
> <mx:VBox xmlns:mx="http://www.macromedia.com/2003/mxml"
> marginLeft="0" marginBottom="0" marginRight="0" marginTop="0"
> height="25" backgroundAlpha="0" width="100" verticalAlign="middle"
> horizontalAlign="center" >
>
>
> <mx:Script>
> public static var dataProvider:Array;
> private var listOwner:Object;
> var getCellIndex : Function;
> var getDataLabel : Function;
>
> function setValue(str:String, item:Object, sel:Boolean) :
Void
> {
> _cb.visible =(item!=undefined);
>
> _cb.dataProvider = reasonlist.dataProvider;
>
> _cb.selectedIndex =
> reasonlist.dataProvider.selectedIndex;
>
> }
>
> function getValue() : Object
> {
> var rd = listOwner.getItemAt(getCellIndex
> ().itemIndex);
> return rd.reasonlist.dataProvider;
> }
>
> function handleEvent(evt:Object):Void
> {
> if (evt.type == "change")
> {
>
> var rd = listOwner.getItemAt(getCellIndex
> ().itemIndex);
>
> rd.reasonlist.dataProvider.selectedIndex =
> _cb.selectedIndex;
>
> listOwner.editField(getCellIndex
> ().itemIndex,"reasonlist.dataProvider",rd.reasonlist.dataProvider);
> }
> }
>
>
> </mx:Script>
> <mx:ComboBox id="_cb"
dataProvider="{reasonlist.dataProvider}" />
>
>
> </mx:VBox>
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/flexcoders/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/