apache-flex - 在 Flex 中如何刷新数据网格上的数据提供者

标签 apache-flex

请帮帮我...

我有一个简单的DataGrid,数据提供者是一个服务“getServiceDatiResult.lastResult”,这个服务来自返回一个sqlserver数据的webmethod aspnet。 我通过 click_button 创建了事件,该事件将数据插入数据并将数据获取到 Datagrid .... 问题是数据网格。它仅在我多次调用按钮事件时刷新数据..

我试过了:

datagrid.refresh();

datagrid1.columns.clear();
datagrid1.columns.refresh();

getServiceDatiResult.lastResult.refresh();
getServiceDatiResult.lastResult.commit();

代码:

<mx:DataGrid id="datagrid1" creationComplete="datagrid1_creationCompleteHandler(event)"
             dataProvider="{getServiceDatiResult.lastResult}" dropShadowVisible="true"
             fontSize="12" fontWeight="normal" textAlign="center" verticalAlign="middle" editable="true">

<s:Button id="button3"  label="Insdata3_now" click="button3_clickHandler(event)"/>


[Bindable]
protected function button3_clickHandler(event:MouseEvent):void
{
    getServiceDatiResult.token = service.getServiceDati();

        <!-- regresh ???? -->           
    getServiceDatiResult.lastResult.commit();
    getServiceDatiResult.lastResult.refresh();
}

最佳答案

您想刷新 DataGrid 的数据提供者;这反过来将更新 DataGrid。

假设你有一个 ArrayCollection,你可以使用 refresh() 方法来刷新所有项目:

(datagrid.dataProvider as ArrayCollection).refresh();

如果您只刷新单个项目,您可以通过使用 itemUpdated() 更新单个项目来节省一些处理时间:

(datagrid.dataProvider as ArrayCollection).itemUpdated(item);

MX DataGrid 将获取任何对象并尝试在 DataGrid 中显示它,因此如果您从服务器返回一个数组或 XML,您可能必须替换数据提供者:

datagrid.dataProvider = newDataProvider;

关于apache-flex - 在 Flex 中如何刷新数据网格上的数据提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21479401/

相关文章:

Actionscript3/Flex 中的 HTML 特殊实体代码

apache-flex - Flex 3 - 启动 .exe 文件

apache-flex - 类mx.core::DesignLayer could not be found

listview - iOS UITableView 类似于 Flex Air 的 Sticky Header Index 列表

mysql - 将预先存在的 Flex/Java/Hibernate/MySQL 应用程序迁移到可移植发行版的 CD 上的最佳途径?

apache-flex - 使用 RemoteObject 的同步调用

apache-flex - 如何捕获Flex中的所有异常?

c# - 在 C# 服务器中处理由 Flex 触发的 http

apache-flex - Adobe Flex 和 HTML 5 之间的区别

apache-flex - MXML 会从 "compile"到 html5 吗?