gpt4 book ai didi

apache-flex - AdvancedDataGrid + GrouppingCollection2 - 滚动到特定项目

转载 作者:行者123 更新时间:2023-12-02 03:40:57 24 4
gpt4 key购买 nike

我对 Adob​​e Flex 有疑问。我将 AdvancedDataGrid 作为 TreeView ,它的数据提供者是 GroupingCollection2。在这个网格中,我有文档,它们按 3 个标签分组。当用户修改任何文档时,我必须刷新整个网格。这是我的问题。刷新后我的网格滚动到开头。我设法将其滚动到上一个索引,但效果不佳。如果已编辑文档上方的任何节点折叠,则在刷新后所有节点都会展开,并且先前的索引不针对同一文档。如何记住所选项目并滚动到它?

我对此有困难,主要是因为数据网格中的行多于源中的项目。是这样的,因为网格中的所有“文件夹”也算作行。

这是我的 AdvancedDataGrid:

<mx:AdvancedDataGrid  visible="{entityId > 0}" height="100%" variableRowHeight="true" width="90%" left="5" right="5" bottom="5" top="70" id="_dg" doubleClickEnabled="false" doubleClick="onDgDoubleClick(event)"  updateComplete="onUpdateComplete(event)">
<mx:dataProvider>
<mx:GroupingCollection2 id="_groupper" source="{getTemplateFilesResponder.lastResult}">
<mx:grouping>
<mx:Grouping>
<mx:GroupingField name="Type1" groupingFunction="getTypeLabel" id="_groupingField" />
<mx:GroupingField name="Type2" groupingFunction="getTypeLabel" />
<mx:GroupingField name="Type3" groupingFunction="getTypeLabel"/>
</mx:Grouping>
</mx:grouping>
</mx:GroupingCollection2>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn headerText="{resourceManager.getString('biawizard','file.18')}" dataField="OriginalFileName" wordWrap="true" />
<mx:AdvancedDataGridColumn headerText="{resourceManager.getString('biawizard','list.labeldescription')}" dataField="Comments" wordWrap="true" />

<mx:AdvancedDataGridColumn headerText="{resourceManager.getString('biawizard','filelistform.Version')}" dataField="Version" wordWrap="true" />
<mx:AdvancedDataGridColumn headerText="{resourceManager.getString('biawizard','filelistform.Status')}" dataField="Status" labelFunction="getStatusLabel" wordWrap="true" />

</mx:columns>
</mx:AdvancedDataGrid>

有人知道我怎样才能正确地做事吗?

最佳答案

您可以尝试一个技巧,但正如您所说的那样工作不正常,分配索引的问题。您可以保存选择索引以了解哪个是最后选择的项目,然后在通过事件运行命令后分配它。

[可绑定(bind)] private var objLastSelectIndex:int;

private function init()
{
FlexGlobals.topLevelApplication.addEventListener(Controller.EVENT_YOUR_EVENT_REFRESH, onScrollSett);
}

private function onItemClickDataGrid(e:Event):void
{
this.objLastSelectIndex = this.adgData.selectedIndex;
}

private function onScrollSett(e:Event):void
{
try
{
this.adgData.selectedIndex = this.objLastSelectIndex
this.adgData.validateNow();
this.adgData.scrollToIndex(this.objLastSelectIndex);
}
catch(err:Error)
{
//TODO: ERROR IN INDEX SETTING
}

}


<mx:AdvancedDataGrid id="adgData" itemClick="{onClickItemDataGrid(event)}" />

此外,如果您使用 ArrayCollection,您可以尝试使用它的源代码,直接分配值,您对网格所做的操作不会重绘。

问好。

关于apache-flex - AdvancedDataGrid + GrouppingCollection2 - 滚动到特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20073619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com