gpt4 book ai didi

javascript - 如何从 jQuery 更新 ZK Grid 值

转载 作者:行者123 更新时间:2023-12-02 18:44:17 24 4
gpt4 key购买 nike

我有三个选项卡,每个选项卡中都有一个网格

每个Grid 的数据都来自数据库,因此我使用rowRenderer 来填充网格。以下代码对于所有三个网格都是通用的:

<grid id="myGrid1" width="950px" sizedByContent="true" rowRenderer="com.example.renderer.MyRowRenderer">

行是由 Doublebox 对象构造的。数据填充成功。

问题:

我需要在客户端处理多单元格编辑。编辑是通过鼠标单击特定单元格并输入值来完成的。

举个例子,假设用户编辑第一行的第一个单元格,值应该是传播到同一行和所有三个网格中的所有其他单元格(用户当前看不到的两个网格也是如此,因为它们位于选项卡 Pane 中)。我正在使用 jQuery 来执行此值传播,并且工作正常。

我按如下方式传递 jQuery:

doublebox.setWidgetListener(Events.ON_CHANGING, jQuerySelectors);
doublebox.setWidgetListener(Events.ON_CHANGE, jQuerySelectors);

这使得可以更改 1 个单元格中的值,并且可以在 jQuery 选择器过滤的所有其他单元格中立即(直观地)看到更改。

问题是该值在视觉上分布到所有单元格,但是当我尝试将 Grid 数据保存回数据库时,背景值是旧值。我假设 ZK-Grid 组件不知道 jQuery 更改了所有单元格值。尽管如此,如果我在保存网格时手动单击已经具有新值(输入/离开/更改焦点)的单元格,则该特定单元格中的新值是正确的。也许这暗示了我如何解决这个问题。

如何提取Grid值的代码:

Grid tGrid = (Grid) event.getTarget().getFellow("myGrid1");
ListModel model = tGrid.getModel();
MyCustomRow tRow = (MyCustomRow)model.getElementAt(i);

我的 Grid 的模型是 MyCustomRowList:

myGrid1.setModel(new ListModelList(List<MyCustomRow> populatedList));

我有几个假设,但无论我尝试过什么,都没有奏效。我认为 jQuery 事件和 ZK-Events 是不同的,并且可能在不同的上下文中隔离。 (虽然我尝试过从 jQuery 等触发事件..)

你有什么建议吗?总的来说,我的方法正确还是有其他方法可以做到这一点?感谢您提前抽出时间!

最佳答案

您的问题正是您所期望的。
Zk有自己的事件系统,不关心你的jq,
因为 jq 和 zk 不观察 DOM。

解决问题的方法。

  1. 使用“ZK-Way”:
    只需在服务器端监听并在那里更改内容即可。
    我不确定是否没有选择Tabs
    是可更新的,但我确信您可以更新Grid
    Tab 的 select 事件上的组件。

  2. 您自己触发 zk 事件:
    您需要知道的一切都写在 zk doc 中.
    基本上,您在客户端收集数据,发送
    通过 zAu.send()Event 发送到服务器,提取
    来自服务器端 json 对象的数据并更新您的网格

我更喜欢第一个,因为它的工作量更少,而且不应该
流量差异显着。

关于javascript - 如何从 jQuery 更新 ZK Grid 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16562742/

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