请帮助我...
我有一个简单的数据杂志,DataProvider是一个服务" 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();
}
您想刷新数据杂志的dataprovider;这又将更新数据杂志。
假设您有一个arraycollection,可以使用refresh()方法来刷新所有项目:
(datagrid.dataProvider as ArrayCollection).refresh();
如果您仅刷新单个项目,则可以通过使用itemupdated()更新单个项目来节省一些处理时间:
(datagrid.dataProvider as ArrayCollection).itemUpdated(item);
MX DataGrid将采用任何对象并尝试在数据杂志中显示它,因此,如果您从服务器返回数组或XML,则可能必须替换DataProvider:
datagrid.dataProvider = newDataProvider;
我同意reboogs解决方案。另一种做法是,与dataprovider.refresh()
相比,dataGrid.invalidatelist(),
这并不是很重,因为无效将重新加载和重新粉刷UI。
我认为,如果您正确编写此请求,则根本不需要刷新!对我来说,看来您在调用一些异步请求,但也许您会同步操作。我认为是因为处理程序方法的[可约束]标签,为什么在那里有呢?
,但是要决定您认为您没有给我们所有信息。例如 - 在哪里设置变量GetServicatiresult?您在里面设置了一些令牌,但是在哪里设置了Lastresult?
我重复一遍,我认为只是为了调用简单的请求,无需刷新任何东西,问题在其他地方 - 处理请求itsef。
(datagrid.dataprovider as arrayCollection).refresh();当您使用诸如DataProvider之类的数组时...在我的情况下,方法是有效的。在我的情况下,单击按钮(事件)调用3个获取3个不同datagrid的服务...因此,我've 3 callResponder on 3 on 3 callResponder on 3 select to sqlserver by aspnet。.. sincronize所有操作都非常重要...我的临时个人解决方案是修改的SQL表,并使用click butce button(事件)减少操作。在这种方式上,datagrid完美更新...但是我正在研究一个新解决方案。您寻求帮助...
只需刷新您的数据提供商,
var datapro:ArrayCollection = new ArrayCollection();
//
function dataRefresh():void
{
datapro.refresh();
}
//
//
<mx:DataGrid id="datagrid1" creationComplete="datagrid1_creationCompleteHandler(event)" dataProvider="{datapro}">
//
//