gpt4 book ai didi

GWTP Presenter prepareFromRequest - 将数据加载到从事件中检索到的表单中

转载 作者:行者123 更新时间:2023-12-01 05:25:30 27 4
gpt4 key购买 nike

在过去的几周里,我一直在尝试 GWTP,并用它构建了一个小项目。

这是问题:

我有一个显示数据列表的网格小部件(附加屏幕截图)。选中一行的复选框并单击 Edit Request ,我进入详细页面。 Summary Page

由于我有所有数据(模型)要显示在摘要屏幕演示器本身的详细信息页面中,因此我不想再次从数据库中获取它。

所以,我做了以下事情:

  • 在选择并单击编辑请求时,我得到选定的模型
  • 向详情页提出地点请求
  • 解雇 edit event并将所选模型作为参数传递。

  • 我知道我做错了,因为当我选择一个项目并点击 Edit Request 时,详情页还没有收到选中的商品。它只显示一个没有填充数据的空白页面(显然,因为在事件触发之前已经到达该位置)。

    当前代码:
    RequestModel selectedItem = getView().getGrid().getSelectionModel().getSelectedItem();

    PlaceRequest placeRequest=new PlaceRequest(NameTokens.initiationedit);
    getEventBus().fireEvent(new RequestEditEvent(selectedItem, PHASE_INITIATION));

    placeManager.revealPlace(placeRequest);

    个人认为解决方案 : 我可以使用所选项目的 id 的参数发出 placerequest,而不是触发事件然后覆盖 useManualRevealprepareFromRequest从数据库中获取新的数据。

    但是有没有办法可以避免数据库调用预先存在的数据。

    最佳答案

  • 如果您想保留当前的“RequestEditEvent”解决方案,请务必使用 @ProxyEvent (见 http://code.google.com/p/gwt-platform/wiki/GettingStarted?tm=6#Attaching_events_to_proxies)。
  • 另一种可能性可能是反转事件的方向:在您的详细信息演示者中,触发一个向概览演示者请求数据的事件。
  • 但是,当跨多个演示者使用相同的数据时,将数据保存在中央模型中可能是个好主意:创建一个模型类 (@Singleton) 并将其注入(inject)您需要的任何地方。然后,您可以从该本地模型进行查找(通过 id),而不是询问服务器。在这种情况下,您不需要任何事件 - 只是某处的 id,例如作为位置参数,甚至作为模型中的“currentItemId”。
  • 关于GWTP Presenter prepareFromRequest - 将数据加载到从事件中检索到的表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14066711/

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