我有三个Tabs
,在每个选项卡中,我都有一个Grid
.
每个数据都Grid
来自数据库,所以我rowRenderer
用来填充网格。以下代码对所有三个网格都是通用的:
<grid id="myGrid1" width="950px" sizedByContent="true" rowRenderer="com.example.renderer.MyRowRenderer">
行由Doublebox
对象构成。数据已成功填充。
问题:
我需要在客户端处理多单元格编辑。编辑是通过鼠标单击特定单元格并输入一个值来完成的。
例如,假设用户编辑第一行的第一个单元格,并且该值应该传播到同一行和所有三个网格中的所有其他单元格(用户当前看不到的两个网格也是如此,因为它们是中tabpanes
)。我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
是:List
MyCustomRow
myGrid1.setModel(new ListModelList(List<MyCustomRow> populatedList));
我有几个假设,但无论我尝试过什么,都没有奏效。我记住了这些jQuery
事件并且ZK-Events
在不同的上下文中是不同的并且可能是孤立的。(虽然我试图从 jQuery 等触发事件..)
你有什么建议吗?总的来说,我的方法是正确的还是有另一种方法可以做到这一点?提前感谢您的时间!