【问题标题】:How to refresh XML data that is bound to a list in Flex?如何刷新绑定到 Flex 中列表的 XML 数据?
【发布时间】:2012-02-09 22:20:22
【问题描述】:

我正在使用 Flash Builder 4.6 和 flex 为 Blackberry Playbook 编写应用程序。我遇到了一个问题,我希望有人可以帮助我。如下:

首先,我正在制作一个允许用户浏览各种 reddit 提要的应用程序。我正在使用 reddit API,您可以在其中使用 JSON 或 XML 格式的数据。我正在使用 XML。在 Adob​​e Flash Builder 中,我运行了“数据/服务”向导以连接到数据源,该数据源在 Reddit 上提取了大约 25 个最新条目。然后我将该数据绑定到位于视图“redditFeed”中的 spark 列表组件。你会注意到它使用了 AsyncListView。这是代码:

redditFeed.mxml

<fx:Script>
    <![CDATA[

public function myList_creationCompleteHandler():void
            {   

                getRedditFeedResult.token = redditFeedGrabber.getRedditFeed("");                    
            }
        ]]>
    </fx:Script>

<fx:Declarations>
        <s:CallResponder id="getRedditFeedResult"/>
        <redditfeedgrabber:RedditFeedGrabber id="redditFeedGrabber"/>
        <s:CallResponder id="redditFeedJSONResult"/>
    </fx:Declarations>

     <s:List id="feedList" width="100%" height="100%" change="myList_changeHandler(event)"
                contentBackgroundColor="#deefff" 
                creationComplete="myList_creationCompleteHandler()">
        <s:AsyncListView id="asyncList" list="{getRedditFeedResult.lastResult}"/>
            <s:itemRenderer>
                <fx:Component>
                    <s:IconItemRenderer iconField="thumbnail" 
                                        iconWidth="64" iconHeight="64"
                                        labelField="title" fontSize="20"
                                        messageField="pubDate"
                                        verticalAlign="top"
                                        iconPlaceholder="{assets.LoadingIcon}">
                        <fx:Script>
                            <![CDATA[
                                import assets.LoadingIcon;
                            ]]>
                        </fx:Script>
                    </s:IconItemRenderer>
                </fx:Component>
            </s:itemRenderer>



        </s:List>

现在解决我的问题;我有一个名为“refreshButton”的刷新按钮。我希望当用户单击此按钮时刷新上面的火花列表中的数据。我已经四处寻找解决方案,但无济于事。 那么,我怎样才能重新加载绑定到列表的 xml 数据,然后让列表显示这些新数据? 感谢您提供的任何帮助。如果还有什么我可以提供的来帮助您帮助我,请告诉我。谢谢!

【问题讨论】:

    标签: xml apache-flex data-binding refresh mxml


    【解决方案1】:

    您所要做的就是在按钮单击处理程序的创建完成处理程序中进行相同的调用。设置令牌并再次调用应该会在 ASyncToken 得到结果时强制刷新。

    【讨论】:

    • 啊,但我必须先以某种方式清除列表或数据吗?因为它似乎不想更新。
    • 我相信 lastResult 是可绑定的,并且应该触发一个属性更改事件来触发要重新分配的值 在 mxml 绑定行上放置一个断点并在调试模式下运行,您应该在单击后看到它命中了您的按钮。
    • 当我从包含该函数的 mxml 视图内部调用该函数时,它可以工作。否则,如果我从不同的 mxml 视图调用它,它不会。有什么想法吗?
    • 您能否发布代码以说明如何从其他 MXML 文件进行调用?我不确定为什么这会影响任何事情,只要您为 mxml 组件分配一个 id 并通过它显示的实例进行调用。
    • stackoverflow.com/q/9222639/1176170 我刚刚为这个问题发布了一个新问题,因为它超出了这里讨论的范围。也许你可以看看?再次感谢!
    猜你喜欢
    • 2011-09-18
    • 2015-09-05
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2014-08-07
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多